VBA中的单元格引用是自动化处理Excel数据的基础,是数据最基本的载体。编码中如何引用单元格呢?这一篇文章就用了

Cells引用单元格
引用某工作表中行、列坐标所指定的单元格,可以使用本方式,基本语法为:
[WorkSheet]. Ce11s([RowIndex] , [Co1umnIndex])
其中,工作表对象WorkSheet可选(即缺省引用),行坐标RowIndex与列坐标ColumnIndex也可选
当只提供第一个参数(RowIndex),返回指定行上的所有单元格(一个区域范围)。如Cells(1),表示工作表的整个第一行,等效于 Rows(1)
当两个参数均不提供,返回当前工作表上的所有单元格(一个区域范围)。如Cells,表示工作表的所有单元格
当行坐标与列坐标皆为1时表示引用工作表左上角的A1单元格,我们可以通过代码Cells(1,1) Address来进行验证

Cells(5,4)则表示引用行坐标为5、列坐标为4的单元格,即D5;以此类推Cells(15,7)为G15单元格
关于Cells参数,概括成三句话:
填两个:精准定位到一个单元格。
只填第一个:定位到一整行的单元格。
都不填:定位到整张工作表的所有单元格
使用行号和列号数字,非常适合在循环结构中动态引用单元格。但是大家有没有发现,行号还好理解,列号就很难一下子反应过来,就需要去工作表中数一数,看看对应的是哪一列,有些不方便
因此Cells还提供了另一种访问方式,即Cells(行号,列标)的形式,例如:
Cells(5,”D”):表示引用D5单元格
Cells(15,”G”):表示引用G15单元格
是不是就很贴近我们的使用习惯了呢?答案是肯定的。那么在编码时如何选择这两种方式呢?场景不同选择也会不同,可以参考如下建议:
如果只是在代码中静态地引用某一个特定的列(例如总是操作D列),使用 Cells(5, “D”) 可以让代码一目了然,更容易理解
但如果需要遍历从第2列到第10列的所有数据,使用数字列号会非常方便,如:
For i = 2 To 10If Cells(5, i).Value > 100 Then ' 使用变量i代表列号' 执行的具体操作End If

Cells引用整行或整列
在VBA中,因为 Cells 属性本身设计用于引用单个单元格或单元格集合,所以要使用 Cells 属性来引用一行或一列,通常需要结合其他属性或方法来实现
2.1引用整行
核心方法:Cells(行号, 列号).EntireRow
例如:
Cells(5, 2).EntireRow.Select
执行后结果,会选中B5单元格所在的第5行

2.2 引用整列
核心方法:Cells(行号, 列号).EntireColumn
例如:
Cells(5, 2).EntireColumn.Select
执行后结果,会选中B5单元格所在的第2列


结束语
除了Cells引用单元格,我们还可以使用Range,关于Range如何引用单元格可以参考前期文章,参考链接:【 VBA 编程】一文掌握Excel Range对象引用单元格及区域的方式
公众号同时也在不间断地分享免费的编程案例,如果想学习更多的编程知识,无论是用来提升自动化办公效率还是想提升自我,都可以关注我的公众号“努力鸭是黑色的”,解锁更多的VBA技能





