我要投稿
|
RSS
首页
函数l视频
Excel模板
Excel代制
Excel基础
Excel函数
Excel公式
ExcelVBA
English
Python
您当前的位置:
首页
>
ExcelVBA
工作簿workbook、工作表worksheet、单元格对象(rang、cell)
作者:
来源:
原创
VBA对象
’VBA中的对象其实就是我们操作的具有方法、属性的excel中支持的对象
对象.方法 参数名称:=参数值,参数名称2:=参数值2,
鸡蛋.煎 煎的程度:9成
在菜单中,点击
视图
,点击
对象浏览器
,可以看不同的对象所具有的属性和方法。
Excel中的几个常用
对象
表示方法
单元格对象
cell
s
所有单元格格地址
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))
来表示。
工作表对象
sheet
1
表示第一个插入的工作表sheet2表示第二个插入的工作表:以系统名称的sheet名为准。
特点:不受用户修改表名的影响,不受用户调整表顺序影响。
sheets("工作表名称")
名称的工作表:表示所有工作表集中中指定的某个名称的工作表
特点:当sheet表名固定的情况下,使用此用方式。
Sheets(n) 表示按排列顺序工作表,第n个工作表:(以调整后的顺序为准),不建议使用。
特点:表顺序不调整的情况下,使用此种方式。
activesheet也表示活动工作表,标所在工作表。
worksheet也表示工作表,但不包括图表工作表、宏工作表等。
下面我们以一个工作一有实例来演示一下,比如运行日志1有5个工作表,部分工作表的名称做了修改,使用vba来进行演示不同sheet的用法。
Debug.Print
Sheet5
.Range("a1")中的sheet5,对应上图中左侧系统给出的sheet名称,因为具体的是某个工作表,所以并不需要加S,
Debug.Print Sheet
s(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
第4个工作簿有多少个工作表。第4个工作簿指的是1个,所以不加S,因为一个簿中有多个表,所以表要加s,就是wordksheets。
来顶一下
返回首页
推荐资讯
{SUM函数}:计算单元
LEFT函数:从一个文本
MID函数:从文本字符
column函数:返回一引
扫一扫微信二维码,联系作者:
相关文章
无相关信息
栏目更新
栏目热门
站内搜索:
站内
高级搜索
网站首页
|
关于我们
|
服务条款
|
广告服务
|
联系我们
|
网站地图
|
免责声明
|
豫ICP备19034924号-1
豫公网安备41010302002521号
Copyright © 2019-2023
制作表格