工作簿workbook、工作表worksheet、单元格对象(rang、cell)
浏览人数:
VBA对象
’VBA中的对象其实就是我们操作的具有方法、属性的excel中支持的对象
在菜单中,点击视图,点击对象浏览器,可以看不同的对象所具有的属性和方法。

Excel中的几个常用对象表示方法
Range(“单元格地址”):可以表示某个单元格,或者是某个区域
celis(行数,列数):可以配合row,column来指定动态单元格
Activecell 正在选中或编辑的单元格
Selection 正被选中或选取的单元格或单元格区域
对象.属性=属性值
比如:a1单元格的值为100
range("a1").value=100
比如:d1单元格的背景的颜色设置为某个颜色
Sheets(1).Range("d1").Interior.ColorIndex = 9
字体颜色设置:
Sheets(1).Range("d1").Font.ColorIndex = 2
特点:不受用户修改表名的影响,不受用户调整表顺序影响。
sheets("工作表名称")名称的工作表:表示所有工作表集中中指定的某个名称的工作表
特点:当sheet表名固定的情况下,使用此用方式。
Sheets(n) 表示按排列顺序工作表,第n个工作表:(以调整后的顺序为准),不建议使用。
特点:表顺序不调整的情况下,使用此种方式。
activesheet也表示活动工作表,标所在工作表。
worksheet也表示工作表,但不包括图表工作表、宏工作表等。
下面我们以一个工作一有实例来演示一下,比如运行日志1有5个工作表,部分工作表的名称做了修改,使用vba来进行演示不同sheet的用法。

Debug.Print Sheet5.Range("a1")中的sheet5,对应上图中左侧系统给出的sheet名称,因为具体的是某个工作表,所以并不需要加S,
Debug.Print Sheets(5).Range("a1")这一句中,加了S表示的是所有工作表中的第5个表(默认情况下,新建表都是从左到右,且未进行顺序的调整),
Debug.Print Sheets("sheet2").Range("a1")这一句中的工作表名称,是以我们修改后的形式表示,系统对应的sheet5我们看到的是sheet2的形式。
当我们新建的工作表顺序发生变化时,则同样的代码,所运行出来的结果却是不同的,这里把二部的位置移至最后,看到第2行的结果发生了变化。

实际日期的这个结果,是二部这个表中a1的值。所以在使用sheets(数值为我们看到的Excel表的顺序),推荐使用sheetN和sheet("工作表名称")的形式表示
sheet和worksheet的区别:

worksheet专指工作表,而sheet是范指,除了指worksheet以外,还可以指图表,宏表,对话框等。也就是说,sheet的范围大于worksheet,如果都是去指工作表时,2者基本没什么区别。
有个"s"就是复数,Worksheets是Worksheet的集合,Sheets是sheet的集合,worksheets是sheets的子集
worksheets集合的Count尾性返回工作簿中工作表的数量,而Sheets集合的Count属性则返回工作中所有工作表的数量,包含图表工作表和工作表,
当然,很多情况下,Sheets只包含一般工作表(没图表、宏表.....,则两集合相等,Count数量也等,难怪有人把Sheets当作Worksheets的简写.
我来接下来看一个实例,比如打开了4个工作表,而vba写在某个表的模块中,运行的worksheets.count,所获取到的工作表的数量,只是此模板代码所对应的工作表的数量。

如上图,即立即窗口中的5,所表示的就是运行日志(1).xlsx中总共有5个工作表。
workbooks(N) ,表示已打开的第n个工作
Workbooks (“工作薄名称")
ActiveWorkbook 正在操作的工作薄
ThisWorkBook 代码所在的作薄
实例:
现在打开了4个Excel的工作表,在某个工作表中使用vba代码,来看一下一共打开的工作表的个数。
workbooks.count就是获取打开工作簿的数量。
注意:
在某个工作表中运行,都可以获取到整个打开的工作表的数量。和直接使用worksheets.count不同,worksheets.count只能获取到代码所在工作表的总表个数。
那如果要查询其他已经打开的工作薄中工作表的个数,我们只需要指定workbooks的名称,或者打开的第几个表,再进行查询就可以了。

总结一下:在excel的VBA中,默认的小范围都是代码所在的表,或者当前打开的活动表,当需要要指定的其他工作簿中指定的工作表中执行时,需要指定大的对象,小的对象,以及配合对应的属性和方法才能实现。
第4个工作簿有多少个工作表。第4个工作簿指的是1个,所以不加S,因为一个簿中有多个表,所以表要加s,就是wordksheets。
’VBA中的对象其实就是我们操作的具有方法、属性的excel中支持的对象

对象.方法 参数名称:=参数值,参数名称2:=参数值2,
鸡蛋.煎 煎的程度:9成在菜单中,点击视图,点击对象浏览器,可以看不同的对象所具有的属性和方法。

Excel中的几个常用对象表示方法
单元格对象
cells 所有单元格格地址Range(“单元格地址”):可以表示某个单元格,或者是某个区域
celis(行数,列数):可以配合row,column来指定动态单元格
Activecell 正在选中或编辑的单元格
Selection 正被选中或选取的单元格或单元格区域
对象.属性=属性值
比如:a1单元格的值为100
range("a1").value=100
比如:d1单元格的背景的颜色设置为某个颜色
Sheets(1).Range("d1").Interior.ColorIndex = 9
字体颜色设置:
Sheets(1).Range("d1").Font.ColorIndex = 2
理解Range("B2:B4, D2:D4")和Range("B2:B4", "D2:D4")的区别
前者表示2个区域,后者等价于Range("B2:D4")Range和cells的结合使用:
Range("B2:D4")
也可以用Range(Cells(2, 2), Cells(4, 4))
来表示。
工作表对象
sheet1表示第一个插入的工作表sheet2表示第二个插入的工作表:以系统名称的sheet名为准。特点:不受用户修改表名的影响,不受用户调整表顺序影响。
sheets("工作表名称")名称的工作表:表示所有工作表集中中指定的某个名称的工作表
特点:当sheet表名固定的情况下,使用此用方式。
Sheets(n) 表示按排列顺序工作表,第n个工作表:(以调整后的顺序为准),不建议使用。
特点:表顺序不调整的情况下,使用此种方式。
activesheet也表示活动工作表,标所在工作表。
worksheet也表示工作表,但不包括图表工作表、宏工作表等。
下面我们以一个工作一有实例来演示一下,比如运行日志1有5个工作表,部分工作表的名称做了修改,使用vba来进行演示不同sheet的用法。

Debug.Print Sheet5.Range("a1")中的sheet5,对应上图中左侧系统给出的sheet名称,因为具体的是某个工作表,所以并不需要加S,
Debug.Print Sheets(5).Range("a1")这一句中,加了S表示的是所有工作表中的第5个表(默认情况下,新建表都是从左到右,且未进行顺序的调整),
Debug.Print Sheets("sheet2").Range("a1")这一句中的工作表名称,是以我们修改后的形式表示,系统对应的sheet5我们看到的是sheet2的形式。
Sub sheets对象() 'Sheet = Sheets(1) Debug.Print Sheet5.Range("a1") Debug.Print Sheets(5).Range("a1") Debug.Print Sheets("sheet2").Range("a1") End Sub |
当我们新建的工作表顺序发生变化时,则同样的代码,所运行出来的结果却是不同的,这里把二部的位置移至最后,看到第2行的结果发生了变化。

实际日期的这个结果,是二部这个表中a1的值。所以在使用sheets(数值为我们看到的Excel表的顺序),推荐使用sheetN和sheet("工作表名称")的形式表示
sheet和worksheet的区别:

worksheet专指工作表,而sheet是范指,除了指worksheet以外,还可以指图表,宏表,对话框等。也就是说,sheet的范围大于worksheet,如果都是去指工作表时,2者基本没什么区别。
有个"s"就是复数,Worksheets是Worksheet的集合,Sheets是sheet的集合,worksheets是sheets的子集
worksheets集合的Count尾性返回工作簿中工作表的数量,而Sheets集合的Count属性则返回工作中所有工作表的数量,包含图表工作表和工作表,
当然,很多情况下,Sheets只包含一般工作表(没图表、宏表.....,则两集合相等,Count数量也等,难怪有人把Sheets当作Worksheets的简写.
我来接下来看一个实例,比如打开了4个工作表,而vba写在某个表的模块中,运行的worksheets.count,所获取到的工作表的数量,只是此模板代码所对应的工作表的数量。

如上图,即立即窗口中的5,所表示的就是运行日志(1).xlsx中总共有5个工作表。
工作簿对象
Workbooks 代表工作簿集合,所有的工作workbooks(N) ,表示已打开的第n个工作
Workbooks (“工作薄名称")
ActiveWorkbook 正在操作的工作薄
ThisWorkBook 代码所在的作薄
实例:
现在打开了4个Excel的工作表,在某个工作表中使用vba代码,来看一下一共打开的工作表的个数。

Sub 对象练习() Debug.Print Workbooks.Count End Sub |
workbooks.count就是获取打开工作簿的数量。
注意:
在某个工作表中运行,都可以获取到整个打开的工作表的数量。和直接使用worksheets.count不同,worksheets.count只能获取到代码所在工作表的总表个数。
那如果要查询其他已经打开的工作薄中工作表的个数,我们只需要指定workbooks的名称,或者打开的第几个表,再进行查询就可以了。

总结一下:在excel的VBA中,默认的小范围都是代码所在的表,或者当前打开的活动表,当需要要指定的其他工作簿中指定的工作表中执行时,需要指定大的对象,小的对象,以及配合对应的属性和方法才能实现。
Sub 对象练习() Debug.Print Worksheets.Count Debug.Print Workbooks.Count Debug.Print Workbooks(4).Worksheets.Count End Sub |
制作表格zhizuobiaoge.com
Copyright@all rights reserved