在VBA中,我们通常使用工作表名称或者索引值来引用工作表。如下图1所示的工作表: 图1 语句: Worksheets('完美Excel').Range('A1').Value ='excelperfect' 在“完美Excel”工作表单元格A1中输入“excelperfect”。
在上图1所示的工作表中,我们使用语句: Worksheets('Sheet2').Index 获取“Sheet2”工作表在工作表集合中的索引值为“2”。Index属性返回指定工作表在工作表集合中的索引值,代表工作表在工作簿中的位置。Excel会从左向右依次给工作表编号,图1中“Sheet2”工作表从左起排在第2个,其索引值为2。 然后,使用索引值引用该工作表。例如,下面的语句: Worksheets(2).Range('B2').Value = '完美Excel' 在“Sheet2”工作表单元格B2中输入“完美Excel”,运行代码后的结果如下图2所示。 图2 要引用工作表,除了上面介绍的使用工作表名称或者索引值外,还可以使用工作表对象名称。如果“完美Excel”工作表的对象名称为“excelperfect”,那么语句: excelperfect.Range('B3').Value = '完美Excel' 在“完美Excel”工作表单元格B3中输入“完美Excel”,如下图3所示。 图3 3种引用工作表方法的优缺点
3种引用工作表的方法都有优缺点,使用工作表对象名称引用工作表的方法较为安全些,但无论使用哪种方法引用工作表,都要结合工作簿实际运用情况,选择合适的引用方法。
重大发现(~~) 不知道大家发现没有,在引用工作表后,无需激活工作表和单元格,也就是说,无需将工作表置为当前工作表,即可操作所引用的工作表。
示例1:将数据从一个工作表复制到另一个工作表 下面分别使用工作表名称和工作表对象名称将一个工作表中的数据复制到另一个工作表。 如上图3所示的工作表,现在将“完美Excel”工作表中的数据复制到工作表Sheet3中。
使用工作表名称复制数据 代码如下: Sub CopyDataWithSheetName() '将'完美Excel'工作表单元格A1:B3中的数据复制到 'Sheet3工作表以单元格A1开始的区域中 Worksheets('完美Excel').Range('A1:B3').Copy_ Worksheets('Sheet3').Range('A1') End Sub
使用工作表对象名称复制数据 代码如下: Sub CopyDataWithCodeName() '将'完美Excel'工作表单元格A1:B3中的数据复制到 'Sheet3工作表以单元格A1开始的区域中 excelperfect.Range('A1:B3').Copy Sheet3.Range('A1') End Sub
示例2:依次列出工作簿中的工作表名 下面的代码使用索引值,按工作表从左到右的顺序列出工作簿中的工作表名。 Sub SheetNameList() Dim iIndex As Integer Dim str As String
For iIndex = 1 ToWorksheets.Count str = str &Worksheets(iIndex).Name & vbCrLf Next iIndex
MsgBox '本工作簿中的工作表名依次为:' & vbCrLf & str End Sub 说明:
本文属原创文章,转载请联系我(xhdsxfjy@163.com)或者注明出处。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。 |
|