2015-03-24 10 views
1

Мне нужно использовать VBA, чтобы установить ячейку для суммирования нескольких ячеек над активной ячейкой. Я играл с некоторым кодом, который мне попался, но он настроен на то, чтобы вытащить весь столбец над активной ячейкой. Я недостаточно понимаю код, чтобы изменить его, чтобы суммировать ячейки на два и три строки выше. Вот то, что я до сих пор (только часть макроса размещенную):Используйте VBA для суммирования нескольких ячеек выше активной ячейки

Sub QRTLYdatagrab() 

''''Script leading up to this point has been omitted'''' 

Range("U1").End(xlDown).Offset(1, 0).Select 
ActiveCell.FormulaR1C1 = "SUM('Asset_Dtl for CEQs for FAS 157'!J:J)" 
Range("U1").End(xlDown).Offset(2, 0).Select 

Dim r As Range, rAbove As Range 
Dim wf As WorksheetFunction 
Set wf = Application.WorksheetFunction 
Set r = ActiveCell 
Set rAbove = Range(r.Offset(-2, 0), Cells(2, r.Column)) 
r.Formula = "=SUM(" & rAbove.Address & ")" 

''''Script after this point has been omitted'''' 

End Sub 

Быстрый пример: один квартал мои данные могут утилизировать 402 строк. Я суммировал строки 1 - 402 в 403. 404 вытягивает сумму из другой вкладки. Мне нужно 406 сумм 403 и 404. Пожалуйста, дайте мне знать, если мне нужно прояснить что-нибудь и заранее за вас за любую помощь.

+0

Было бы проще использовать формулу excel – phil652

+0

@ phil652 Я, безусловно, открыт для этого. Как я могу суммировать ячейки 2 и три строки из моей активной ячейки? Я бы предпочел, чтобы это было сделано в коде, суть этого заключается в том, чтобы автоматизировать этот процесс, поэтому в ручном режиме это приведет к поражению этой цели. Я попытался использовать код «ActiveCell.FormulaR1C1», но не смог получить от него ничего. Спасибо за понимание. – Michael

+0

После того, как вы выбрали ячейку 406 'Selection.FormulaR1C1 =" = SUM (R [-3] C: R [-2] C) ", может быть все, что вам нужно. – pnuts

ответ

1

Этот ответ был предоставлен pnuts (сайт обыкновение позвольте мне выбрать свой ответ как ответ):

"После того, как вы выбрали 406 ячейки

Selection.FormulaR1C1 = "=SUM(R[-3]C:R[-2]C)" 

- pnuts вчера"

Здесь как я применил его к своему собственному макросу:

Range("U1").End(xlDown).Offset(3, 0).Select 
Selection.FormulaR1C1 = "=SUM(R[-4]C:R[-3]C)" 

Это позволяет макросу чтобы перейти в конец столбца U (где я установил две ячейки суммы), затем выберите ячейку на три строки вниз. Затем эта ячейка суммирует ячейки 4 и 3 строки выше.

Смежные вопросы