ExcelVBA解读(71):Activate方法与Select方法


微信公众号:excelperfect

 

通常情况下,正如上篇文章结尾所讲的,通过引用指定工作表后,我们无须激活该工作表即可对该工作表单元格进行操作。然而,在某些情形下,可能还是需要激活或者选择某工作表,例如,在进行一些复制后粘贴操作时。

 

下面,我们就来讲解Worksheet对象的Activate方法及相关的Select方法。

 

Activate方法和Select方法都可以激活工作表,使其成为当前工作表。在VBA帮助文档中,Activate方法属于Worksheet对象,而Select方法属于Worksheets集合对象和Sheets集合对象。

 

下面的代码:

Worksheets("Sheet2").Activate

使工作表Sheet2成为活动工作表,等价于在工作表界面中单击了Sheet2工作表标签。

 

然而,在录制宏时,Excel会使用Sheets集合的Select方法。例如,在打开新工作簿时,Excel一般默认Sheet1工作表为当前工作表,此时,打开宏录制器,选取Sheet2工作表,录制的代码如下:

Sub Macro1()

'

' Macro1 Macro

'

 

'

    Sheets("Sheet2").Select

End Sub

 

下面的语句:

Sheets.Select

选择工作表中所有的工作表,如下图所示:

 

在工作簿中,工作表Sheet1为当前工作表,按住Ctrl键,选取工作表Sheet2,这样同时选取工作表Sheet1和Sheet2,如下图所示:

录制上述操作的代码如下:

Sub Macro2()

'

' Macro2 Macro

'

 

'

    Sheets(Array("Sheet1","Sheet2")).Select

    Sheets("Sheet1").Activate

End Sub

说明:

  • Excel将同时选中的工作表编成工作组,并以刚开始的活动工作表为组中的活动工作表。

  • Array函数创建一个数组。

 

Select方法有一个可选的参数Replace,当指定该参数值为True时,使用指定的工作表代替当前的工作表成为活动工作表。

例如,当前工作表为Sheet2,运行下面的语句:

Sheets("Sheet3").SelectTrue

工作表Sheet3将成为活动工作表,如下图所示:

当然,上面的语句不带参数也会使Sheet3成为活动工作表。

当指定该参数值为False时,将扩展选定的工作表包含指定的工作表。

例如,当前工作表为Sheet2,运行下面的语句:

Sheets("Sheet3").SelectFalse

将扩展选定的工作表为Sheet2和Sheet3,如下图所示:

 

Activate方法与Select方法的区别

  • 在激活或者选取隐藏的工作表时,要使用Activate方法。如果使用Select方法,则会报错。

  • 正如在上文中所看到的,Select方法一次可以选取一个或者多个工作表,但Activate方法一次只能激活一个工作表。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM