Ну, я думаю, что в первый раз, когда я не понял вашу точку зрения, я подумал, что вы хотели бы вставить числа в столбце B от 0 до последней строки, начиная с адреса B2. Если это так - это будет работать:
Sub add()
Dim i, a As Long
Dim column As String
Dim addr As String
a = 0
column = "b"
For i = 2 To Rows.Count
addr = column & i
ActiveSheet.Range(addr).Value = a
a = a + 1
Next i
End Sub
, но сегодня я понял, что ваш заголовок «Добавление чисел в столбце через Excel VBA» неверен и, вероятно, вы пытаетесь достичь чего-то другого (потому что вы пытаетесьуказать какое-либо значение в ActiveCell?) и если да, пожалуйста, исправьте меня: у вас есть некоторые цифры в столбце B, и вы хотели бы указать в ActiveCell сумму всех этих чисел? Ответ для этого будет:
Sub SumAll()
'give the sum of all numbers in column B, starting from B2
Dim Rng As Range
Dim a, i As Long
Set Rng = Range("b2", Range("b2").End(xlDown))
Counter = Rng.Count + 1
a = 0
For i = 2 To Counter
a = a + Cells(i, "B").Value
Next i
ActiveCell.Value = a
End Sub
Вам нужно использовать «a» как Long, потому что Integer до 2147483647 и если вы заполните все строки в столбце, начиная с 0 и итерируячисло на 1 до последней строки, и сумма значений, которые он вам даст, 2147319811 - вне целочисленной области.
Значение i может быть целым (не длинным, как в моем примере), потому что "i" maxзначение не будет выходить за рамки (количество строк в рабочей книге ограничено 1048576). Вы можете сменить i на Integer и сэкономить несколько КБ памяти:)