选择工作表的方法
在VBA中需要激活或者选择某个工作表时使用Select方法或Activate方法,如下面的代码所示。
#001 Sub SelectSh()
#002 Worksheets("Sheet2").Select
#003 End Sub
#004 Sub ActivateSh()
#005 Worksheets("Sheet2").Activate
#006 End Sub
代码解析:
SelectSh过程使用Select方法选择“Sheet2”工作表,而ActivateSh过程则使用Activate方法选择“Sheet2”工作表,从表面看两者的作用是相同的,但是如果“Sheet2”工作表是隐藏的,Activate方法可以正常运行,而Select方法将会出现错误,如图 22‑1所示。
图 22‑1 Select方法无效提示
如果需要同时选中工作簿中的所有工作表,则只能使用Select方法而不能使用Activate方法,如下面的代码所示。
#001 Sub SelectShs()
#002 Dim Shs As Worksheet
#003 For Each Shs In Worksheets
#004 S False
#005 Next
#006 End Sub
#007 Sub SelectSheets()
#008 Work
#009 End Sub
#010 Sub ArraySheets()
#011 Worksheets(Array(1, 2, 3)).Select
#012 End Sub
代码解析:
SelectShs过程遍历工作表并使用带参数的Select方法选中所有工作表。应用于Worksheet对象的Select方法的语法如下:
Select(Replace)
参数Replace是可选的。如果该值为True,则用指定对象替代当前选定对象。如果该值为False,则延伸当前选定对象以包括任何以前选定的对象。
SelectSheets过程使用Worksheets集合的Select方法选中集合中所有的对象。
ArraySheets过程使用Array 函数返回工作簿中的前三张工作表并使用Worksheets集合的Select方法选中前三张工作表。