Worksheet_SelectionChange和Workbook_SheetSelectionChange事件的用法

时间:2015-01-28 15:26:22

标签: excel vba excel-vba

据我了解,他们做同样的事情,但是

Worksheet_SelectionChange
每次在单个工作表

上更改选择时,都会触发

Workbook_SheetSelectionChange
每次在工作簿中任何工作表中更改选择时,都会触发

这些事件之间是否存在其他差异?

2 个答案:

答案 0 :(得分:5)

Worksheet_SelectionChange事件宏提供的单个参数是刚刚被选中的单元格或单元格区域,例如, 目标Workbook_SheetSelectionChange提供了Workbook_SheetSelectionChange,但添加了使用 Sh 进行选择的工作表。

如果您希望在多个工作表(不一定是所有工作表)上发生相同的事情,请使用Worksheet_SelectionChange并处理 Sh 参数。这也集中了您的代码,因此不必在多个地方重复修改。如果您只打算对单个工作表上的选择更改做出反应,请在其自己的工作表代码页上使用该工作表的{{1}}事件宏。

答案 1 :(得分:3)

好像你回答了自己的问题。

如果您希望更改事件特定于一张工作表,请将Worksheet_SelectionChange放入工作表模块。

如果您希望在书中的每个工作表上都发生更改事件,请将Workbook_SheetSelectionChange放入图书模块。

注意,如果你只想说5张中有3张触发,你可以在Workbook_Change事件开始时检查以检查Sheet.Name