Вы можете использовать .Address
, чтобы получить ссылку на столбец, например:
Sub test()
Dim varCol As String
varCol = Columns(ActiveCell.Column).Address
Debug.Print varCol 'OUTPUTS $A:$A when I had cells(1,1) selected
End Sub
В приведенном выше примере я выбрал одну ячейку для A) найти ссылку на столбец через .Column
, и B) нашел .address
указанного столбца.
Вы также можете выполнить сумму в определенном диапазоне, используя нотацию .cells()
, а не нотацию .range()
.
Sub test2()
Dim rng As Range
Set rng = Range(Cells(1, 1), Cells(2, 1))
Cells(3, 1).Formula = "=sum(" & rng.Address & ")"
End Sub
Вышеприведенный код выводит:
Спецификация c. Используя нотацию .cells()
, вы можете сделать ссылку на свой столбец переменной, например:
dim r as long, c as long
r = 1
c = 4
debug.print cells(r,c).address `should output $D$1 (untested)
Вы можете выбрать r
или c
в соответствии с вашими потребностями.
И как всегда ... избегать выбора / активации, где это возможно !!!
Редактировать
Добавление использования последней строки с помощью кода, поскольку комментарии ужасны:
dim col as long
col = 25 'Y
With sheets("name")
dim lastRow as long
lastRow = .cells(.rows.count,col).end(xlup).row
Dim rng As Range
Set rng = .Range(.Cells(1, 1), .Cells(lastRow, col))
end with
Это Именно поэтому я упомянул особенности об обозначениях после этого раздела (использование r
и c
в качестве переменных).