2017-01-25 2 views
0

Я использую этот макрос для вычисления суммы, но он не работает. Это то, что я пытался до сих пор:Сумма столбца с использованием макроса Excel 2010 vba

Sub sum() 

I = .Range("E2").End(xlDown).Row 

cumul = 0 
For E = 2 To I 
cumul = cumul + Cells(E, 2) 
Next 
Range("E7") = cumul 

End Sub 
+0

Это сообщение, как представляется, [вне темы] (http://stackoverflow.com/help/on-topic) в соответствии с * Вопросы, которые не имеют достаточной информации, чтобы диагностировать проблему . * Пожалуйста, отредактируйте свое сообщение, чтобы добавить достаточную информацию, чтобы люди могли вам помочь. – bahrep

+0

Вы хотите найти сумму для столбца E (поиск последней строки с использованием 'I = .Range (" E2 "). End (xlDown) .Row') или столбец B (' cumul = cumul + Cells (E, 2) ')? –

+0

эй, Моя вкладка такая, как вкладка Name E1: production, E2: 56, E3: 67, E4: 67 и т. Д. ... и я хочу получить сумму для всех этих столбцов – Houyam

ответ

0

Если я понял, вы правильно, следующий код будет просуммировать все значения в колонке E (начиная с клетки Е2), и поместить результат в ячейке B2. (Вы можете изменить расположение легко)

Примечания: Я добавил «Вариант 2», вместо того, чтобы использовать For петли, вы можете использовать WorksheetFunction.Sum суммировать все значения внутри диапазона без необходимости перебирать.

Код

Option Explicit 

Sub SumColE() 

Dim cumul As Long, I As Long, E As Long 

With Worksheets("Sheet1") ' <-- modify "Sheet1" to your sheet's name 
    I = .Range("E2").End(xlDown).Row '<-- get last row in Column E   
    cumul = 0 

    ' option 1: using a loop 
    For E = 2 To I 
     cumul = cumul + .Range("E" & E) '<-- Sum up values in Column E 
    Next E 
    .Range("B2").Value = cumul '<-- put the result in B2 

    ' option 2: using WorksheetFunction SUM 
    .Range("B2").Value = Application.WorksheetFunction.Sum(.Range("E2:E" & I))   
End With 

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