【Excel VBA 基础编程】第17讲:单元格引用,这一篇就够用了

内容分享2个月前发布
0 0 0

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

【Excel VBA 基础编程】第17讲:单元格引用,这一篇就够用了

Cells引用单元格

引用某工作表中行、列坐标所指定的单元格,可以使用本方式,基本语法为:


[WorkSheet]. Ce11s([RowIndex] , [Co1umnIndex])

其中,工作表对象WorkSheet可选(即缺省引用),行坐标RowIndex与列坐标ColumnIndex也可选

当只提供第一个参数(RowIndex),返回指定行上的所有单元格(一个区域范围)。如Cells(1),表示工作表的整个第一行,等效于 Rows(1)

当两个参数均不提供,返回当前工作表上的所有单元格(一个区域范围)。如Cells,表示工作表的所有单元格

当行坐标与列坐标皆为1时表示引用工作表左上角的A1单元格,我们可以通过代码Cells(1,1) Address来进行验证

【Excel VBA 基础编程】第17讲:单元格引用,这一篇就够用了

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 10
    If Cells(5, i).Value > 100 Then  ' 使用变量i代表列号
        ' 执行的具体操作
    End If

【Excel VBA 基础编程】第17讲:单元格引用,这一篇就够用了

Cells引用整行或整列

在VBA中,因为 Cells 属性本身设计用于引用单个单元格或单元格集合,所以要使用 Cells 属性来引用一行或一列,通常需要结合其他属性或方法来实现

2.1引用整行

核心方法:Cells(行号, 列号).EntireRow

例如:


Cells(5, 2).EntireRow.Select

执行后结果,会选中B5单元格所在的第5行

【Excel VBA 基础编程】第17讲:单元格引用,这一篇就够用了

2.2 引用整列

核心方法:Cells(行号, 列号).EntireColumn

例如:


Cells(5, 2).EntireColumn.Select

执行后结果,会选中B5单元格所在的第2列

【Excel VBA 基础编程】第17讲:单元格引用,这一篇就够用了

【Excel VBA 基础编程】第17讲:单元格引用,这一篇就够用了

结束语

除了Cells引用单元格,我们还可以使用Range,关于Range如何引用单元格可以参考前期文章,参考链接:【 VBA 编程】一文掌握Excel Range对象引用单元格及区域的方式

公众号同时也在不间断地分享免费的编程案例,如果想学习更多的编程知识,无论是用来提升自动化办公效率还是想提升自我,都可以关注我的公众号“努力鸭是黑色的”,解锁更多的VBA技能

© 版权声明

相关文章

暂无评论

none
暂无评论...