欢迎来到天天文库
浏览记录
ID:42561976
大小:16.02 KB
页数:3页
时间:2019-09-17
《Excel工作表探密》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Activate方法与Select方法的区别当需要激活或者是选择某个工作表时,使用Sheets(1).Activate和Sheets(1).Select的作用表面上看起来是相同的。但是,如果将需要激活或者是选择的工作表隐藏后,使用Sheets(1).Select将会出现错误,而使用Sheets(1).Activate则会正常运行。如下代码:‘---下面的代码运行正常----Subtest1()Sheets(1).Visible=xlHidden Sheets(1).ActivateEndSub‘---下面的代码运行错误,作用于对象的方法无效----Subtest2()Shee
2、ts(1).Visible=xlHiddenSheets(1).SelectEndSubActivate方法是用来激活对象的方法,而Select方法是用来选取对象的方法,能使用Select方法一次选取多个工作表,但不能使用Activate方法一次激活多个工作表,一次只能激活一个工作表。见下面的代码示例:‘---下面的代码运行正常----SubTest3() ActiveWorkbook.Sheets(Array(1,2,3)).SelectEndSub‘---下面的代码运行错误,对象不支持该属性和方法----SubTest4() ActiveWorkbook.Sheets(A
3、rray(1,2,3)).ActivateEndSub当然,上述内容同样适用于Worksheets集合。作表名称的使用可以在代码中采用下面的三种方式引用工作表:(1)该工作表在工作簿中的位置(索引号)。索引号自工作表标签最左边向右依次计数,最左边的是第1个工作表,依次为第2个、3个……等等。(2)该工作表的名称,即在工作表左下角中看到的工作表标签中的名称。(3)该工作表的对象名称,即在创建工作表时自动分配给该工作表的名称(在VBE编辑器中的工程窗口中可以看到)。通常,在代码中引用工作表时,我们所使用的是工作表对象的Index属性和Name属性,例如 Worksheets(1)
4、.Select或者Worksheets(“Sheet1”).Select。但是,如果工作表的名称被改变或者工作表被重新排序或者删除其中的一些工作表后,则不能使用工作表对象的Name属性或Index属性引用所需要的工作表,这可能使已经编写好的代码出现错误。因此,我们应该考虑虽然工作簿中的工作表改变但不影响工作表引用的办法,可以使用工作表对象的名称避免这种情况,即上面所讲的第3种方式,无论是在工作簿中增加或删除其它工作表,还是对工作表排序,或者是重命名需要引用的该工作表,其对象名都不变(除非您删除该工作表,或者是在VBE窗口中重命名该对象)。工作表对象的名称可以在VBE编程器中看
5、到,如下图2所示。例如,Sheet1(Sheet1),左边是工作表对象的名称,右边的括号中是工作表名,括号中的工作表名可以通过在工作簿界面中改变相应的工作表标签名来改变,如果在工作表中重命名Sheet1工作表为“数据工作表”,则工程属性窗口中的名称为:Sheet1(数据工作表)。在下图2中,工作表Sheet3的对象名称是“主工作表”,而在Excel中,如果改变工作表Sheet3的名称为“数据工作表”,在VBE编程器的工程窗口中,“Sheet3”将变成“数据工作表”,但是该工作表的对象名称仍为“主工作表”,如下图3所示。 图2 图3改变工作表对象名称的方法是,通过改变属性窗口
6、中的(名称)或者在代码中使用Properties("_CodeName")。下面的代码将会添加一个工作表并将该工作表的对象名称命名为"ws_main",这样,在以后的代码中就可以使用该对象名称来引用这个工作表,而不必担心工作表名称改变或工作表顺序改变。SubChageWksObjectName() DimwsAsWorksheet DimsPrevCodeNameAsString DimsNewCodeNameAsString '设置新对象的名称 sNewCodeName="ws_main" '增加新工作表 Setws=Worksheets.Add '获取新增工作表的对象
7、名称 sPrevCodeName=ws.CodeName '变化新增工作表的对象名称 ThisWorkbook.VBProject.VBComponents(sPrevCodeName)._ Properties("_CodeName")=sNewCodeNameEndSub‘----------------------SubTest() ws_main.Range("A1").Value="Thisisit!"EndSub下面的示例简单的介绍了工作表的引用方
此文档下载收益归作者所有