Worksheet_SelectionChange未执行所需任务

时间:2017-09-14 15:21:14

标签: vba excel-vba excel

背景

我似乎不知道我在使用SelectionChange做什么,并希望得到一些帮助以确保我正确使用它。

我在VBA窗口中右键单击此工作簿,然后选择查看代码。我在那个领域有我的代码。在即时窗口(ctrl + g)中,我输入了:

multiplier = len(df) / len(abc)  # Should be 2 or 3 per above condition.
df = df.assign(NewCol=[val for val in abc for _ in range(multiplier)])

>>> df
          A         B         C NewCol
0 -0.262760  1.898977  2.265480      a
1  0.552906  2.144316 -0.942272      a
2 -1.429635 -0.060660  0.756665      b
3 -0.658036 -1.056586  1.458374      b

代码:

我用来测试的代码应该在单元格(1,1)中显示目标行/列:

Application.EnableEvents=True

问题:

我是否遗漏了启用选择更改事件的内容?

2 个答案:

答案 0 :(得分:3)

如果您右键单击 ThisWorkbook 并选择查看代码,您将在代码窗口上方看到两个下拉列表。最左边允许您选择(常规)或工作簿。如果选择“工作簿”,则最右侧的下拉列表将提供您可以在“工作簿”级别使用的所有事件。 Worksheet_SelectionChange不存在,因为它不是工作簿级别事件。

工作簿级别事件包括打开关闭 SheetChange 等事件。注意: SheetChange 在用户更改所选工作表时触发,而不是对给定工作表进行更改。

如果您使用 Sheet1(Sheet1)对象执行相同操作,则最左侧的下拉列表将显示(常规)和工作表。选择此选项将提供工作表级别的可用事件。选择 SelectionChange ,VBE将自动创建事件的shell,以便您填充代码。

请注意,只有在您已添加代码的工作表上更改了单元格时才会触发此事件,因此在创建事件时请记住这一点。

答案 1 :(得分:1)

请勿右键点击ThisWorkbook,而是右键点击Sheet1