Sheets.Select
在 VBA for Excel 中,和有什么区别Sheets.Activate
?
3 回答
不同之处在于它们的灵活性。
Activate
使指定的工作表成为活动工作表,并且只能应用于单个工作表
Select
允许选择性地扩展当前选定的工作表以包括指定的工作表,例如
Worksheets("Sheet2").Select Replace:=False
并且还允许选择一组工作表
Sheets(Array("Sheet3", "Sheet2")).Select
以他们的最小形式Select
做Activate
同样的事情。
例如,如果当前仅选择了一张工作表(例如Sheet3
),或者如果选择了多张工作表但不包括say Sheet2
,则Worksheets("Sheet2").Select
两者Worksheets("Sheet2").Activate
都将Sheet2
成为唯一选定的活动工作表。
另一方面,如果说两者Sheet2
和Sheet3
都被选中并且Sheet2
是活动工作表,则Worksheets("Sheet3").Activate
让两个工作表都被选中并成为Sheet3
活动工作表,Worksheets("Sheet2").Select
而使Sheet3
唯一的选定工作表成为活动工作表。
.activate
您是否单击了工作表选项卡。
.select
模拟您进行控制并单击选项卡。在 VBA 中,您还没有在工作表中。
您可以.select
多张纸,但.activate
只能一张。
扩展上述内容:当使用 Replace:=False 运行以下代码时,sheet4 上不会发生工作表停用事件。如果使用 Replace:=True 代替,则将触发停用事件。
在大多数情况下,防止事件发生是可取的,因为它可能导致意外行为。
这意味着如果使用了 replace:=false,则 select 仅相当于 CTRL+单击工作表选项卡。
子
Dim rng As Range
Sheet4.Select Replace:=False
Set rng = Selection
Sheet5.Select Replace:=True
Selection = rng.Value
结束子
感谢您的帖子,因为它帮助我理解了差异。
哈维