【问题标题】:excel vba How to get a whole column range from a column number?excel vba 如何从列号中获取整个列范围?
【发布时间】: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 什么的。我对columnscolumn 属性感到困惑,因为我不知道如何使用它们。

【问题讨论】:

  • 使用数字引用而不是字母:.columns(x) 应该足够了(而不是 .Range(col_letter & ":" & col_letter) )。
  • 原来如此,非常感谢!我会掌握它的窍门,只是以前从未真正使用过该物业!
  • 将列中的所有单元格包含在内会损害性能。

标签: vba excel


【解决方案1】:

您可以对列使用数字引用而不是字母:.Columns(x) 应该足够了(而不是 .Range(col_letter & ":" & col_letter))。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多