Sheets.Select和Sheets.Activate有什么区别?
在VBA for Excel中, Sheets.Select
和Sheets.Activate
什么Sheets.Activate
?
区别在于它们的灵活性。
Activate
使指定的工作表成为活动工作表,并且只能应用于单个工作表
Select
允许可选地扩展当前选定的工作表以包括指定的工作表,例如
Worksheets("Sheet2").Select Replace:=False
也可以select一系列的纸张
Sheets(Array("Sheet3", "Sheet2")).Select
在他们最小的formsSelect
和Activate
做同样的事情。
例如,如果当前只select了一个工作表(如Sheet3
),或者select了多个Worksheets("Sheet2").Select
,但不包括 Sheet2
,则selectWorksheets("Sheet2").Select
Worksheets("Sheet2").Activate
选定和活动工作表。
另一方面,如果同时selectSheet2
和Sheet3
并且Sheet2
是活动工作表,那么Worksheets("Sheet3").Activate
Sheet3
选中的两个工作表,并使Sheet3
成为活动工作表,而Worksheets("Sheet2").Select
Sheet3
是唯一选中的活动工作表。
.activate
是您单击工作表选项卡上。
.select
模拟你做一个控件,然后点击选项卡。 在VBA中,你还没有在工作表中。
您可以.select
多个工作表,但仅.select
一个工作表。
展开上面的内容:使用Replace:= False运行下面的代码时,sheet4上不会发生工作表停用事件。 如果使用Replace:= True,则取消激活事件将触发。
在大多数情况下,预防事件是可取的,因为它可能会导致意外的行为。
这意味着select只是CTRL +的等价物。单击工作表选项卡IF replace:= false被使用。
sub a
Dim rng As Range Sheet4.Select Replace:=False Set rng = Selection Sheet5.Select Replace:=True Selection = rng.Value
结束小组
感谢您的post,因为这有助于我理解其中的差异。
哈维