前面讲完了EXCEL工作簿和工作表常见操作对应的VBA代码,今天这篇主要讲解的内容是单元格的操作所对应的VBA代码,也是学习VBA的重头戏内容。
因为无论是在工作表中编辑数据,还是从工作表中读取数据,归根结底,是需要对单元格进行操作,因为所有的数据都是写在一个个单元格里面的。
以下分为三个大的部分进行讲解:
1、单元格的常见表示方式
1 | [A1] |
是的,你没看错,上面的3种方式指代的都是单元格A1,就是工作表左上角的那个。这和咱们手动操作不同,如果直接选中A1单元格,看到的就是A1。
至于为什么会有这么多表示方式,VBA自有它的妙用,在这里,只需了解一下,混个眼熟,待咱们把另外2个部分的知识学完,最后再实操一下,进一步理解并体会这么多表示方式的好处。
2、单元格对象常用方法
1 | Select(选中) |
3、单元格对象常用属性
1 | Value(值) Text(文本内容) |
前面打过比方,如果把“人”看作一个对象的话,那么人所具备的属性是:有鼻有眼有手有脚…人具备的方法是:吃饭、走路、睡觉…。
所以可以发现,属性基本是名词,是用来描述对象特征的;而方法则基本是动词,是用来说明对象能干哪些事。
上述2、3、中的单元格的常用方法和属性,也是同样道理。
VBA是面向对象的编程,无论是工作簿、工作表还是单元格,使用它们的属性或方法时,语句结构都是一样的:对象.属性
或对象.方法
。比如:Range("A1").Select
是选中A1单元格;Range("A1").ClearContents
是清空A1单元格中的内容;Range("A1").Entire row.Delete
是将A1单元格所在的整行删除;Sheets(1).Range("A1").Offset(2, 3) = "hello"
是将当前工作簿中第1个工作表中的A1单元格往右偏移2行至第3行,往左偏移3列至第4行,也就是在D3单元格中填入“hello”。其中Offset(2, 3)
中的2
指的是行号(Row),3
指的是列号(Column)。Range("A1").Value
是指A1单元格的值;而Range("A1").Text
则是当A1单元格设置为常规格式时,它里面的文本内容。可以用Msgbox Range("A1").Value
和Msgbox Range("A1").Text
打印一下,看看有何不同。
这么描述,可能不是很直观,你可以动手试试,运行一下,看看效果。
至于单元格自动筛选的操作AutoFilter,可以结合《VBA常用代码(表格拆分&筛选)》这篇文章,理解理解。