Excel VBA如何通过列号获取整列数据范围?
更简洁的VBA整列范围定义方法(针对SUMIF场景)
嘿,你完全找对方向了——确实不用先转成列字母绕弯子,直接用列号就能搞定整列范围!
直接用列号指代整列
你可以直接用Columns(col_number)来获取对应列的整列范围,比如要第15列(O列),就写Columns(15),完全不用拼接字符串。
优化你的SUMIF代码
把你原来的代码改成这样,简洁度直接拉满:
Dim my_total As Double Dim col_number As Long col_number = 15 ' 直接用Columns(col_number)代替列字母拼接的范围 my_total = Application.WorksheetFunction.SumIf( _ .Range("A:A"), "Admix", Columns(col_number))
理清Columns和Column的区别
你之前困惑的这两个属性,其实很好区分:
Columns:是工作表的列集合对象,可以接受列号、列字母或者范围作为参数,返回对应的列(或多列)范围。比如Columns("O")、Columns(15)、Columns("A:C")都是合法用法。Column:是单个单元格或单元格范围的属性,返回该单元格/范围左上角单元格所在的列号。比如Range("O5").Column会返回15,Range("A:C").Column会返回1(因为左上角是A列)。
另外,Columns(col_number)和你之前用col_letter & ":" & col_letter的效果完全一致,都是指代整列,用来做SUMIF的求和范围完全没问题。
内容的提问来源于stack exchange,提问作者jamheadart
相关产品推荐
相关产品推荐

