背景
我似乎不知道我在使用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
问题:
我是否遗漏了启用选择更改事件的内容?
答案 0 :(得分:3)
如果您右键单击 ThisWorkbook 并选择查看代码,您将在代码窗口上方看到两个下拉列表。最左边允许您选择(常规)或工作簿。如果选择“工作簿”,则最右侧的下拉列表将提供您可以在“工作簿”级别使用的所有事件。 Worksheet_SelectionChange不存在,因为它不是工作簿级别事件。
工作簿级别事件包括打开,关闭和 SheetChange 等事件。注意: SheetChange 在用户更改所选工作表时触发,而不是对给定工作表进行更改。
如果您使用 Sheet1(Sheet1)对象执行相同操作,则最左侧的下拉列表将显示(常规)和工作表。选择此选项将提供工作表级别的可用事件。选择 SelectionChange ,VBE将自动创建事件的shell,以便您填充代码。
请注意,只有在您已添加代码的工作表上更改了单元格时才会触发此事件,因此在创建事件时请记住这一点。
答案 1 :(得分:1)
请勿右键点击ThisWorkbook
,而是右键点击Sheet1
。