分享

Excel VBA解读(70):在代码中引用工作表

 L罗乐 2017-07-27

 

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

说明:

  • 代码中使用常量vbCrlf来对获得的结果换行。结果如下图所示:


本文属原创文章,转载请联系我(xhdsxfjy@163.com)或者注明出处。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多