【发布时间】:2018-05-21 18:42:41
【问题描述】:
我想不出更简单的方法来做到这一点
当前将列号转换为字母:
col_letter = Split(Cells(1, X).Address, "$")(1)
然后我像这样定义整个列范围:
.Range(col_letter & ":" & col_letter)
有没有更简单的方法?
背景:
我正在尝试在 VBA 中使用 SUMIF
Dim col_letter as string
Dim my_total as double
Dim col_number as long
col_number = 15
col_letter = Split(Cells(1, X).Address, "$")(1)
my_total = Application.WorksheetFunction.SumIf( _
.Range("A:A"), "Admix", .Range(col_letter & ":" & col_letter))
但我不禁想到必须有一些聪明的东西来使用col_number定义范围
.Range(col_letter).column 什么的。我对columns 和column 属性感到困惑,因为我不知道如何使用它们。
【问题讨论】:
-
使用数字引用而不是字母:
.columns(x)应该足够了(而不是.Range(col_letter & ":" & col_letter))。 -
原来如此,非常感谢!我会掌握它的窍门,只是以前从未真正使用过该物业!
-
将列中的所有单元格包含在内会损害性能。