我可以从ListObject的.NET API(VSTO)中看到,确实存在该对象的事件。VSTO Docs
然而,我不是在.NET中编码,我只是在做普通的Excel VBA,并希望利用ListObject引发的事件。
The official Microsoft Documentation on ListOjbect不显示任何事件,但我希望也许有一个“非官方”的方式可以实现这一点?
我可以从ListObject的.NET API(VSTO)中看到,确实存在该对象的事件。VSTO Docs
然而,我不是在.NET中编码,我只是在做普通的Excel VBA,并希望利用ListObject引发的事件。
The official Microsoft Documentation on ListOjbect不显示任何事件,但我希望也许有一个“非官方”的方式可以实现这一点?
3条答案
按热度按时间nzkunb0c1#
没有直接的
Events
,但有一些变通方法。例如,您可以检查用户是否尝试单击
ListObject
下的内部或一行6vl6ewon2#
我不知道Listobjects的任何特定事件,但您可以使用工作表的事件轻松地重现该行为。
如果您希望在单击一个单元格时触发事件:
如果希望在更改列表对象的单元格值时触发事件:你一次只能改变一个单元格。所以没有必要检查单元格的数量。它总是一个。
还有其他事件你可以编程。双击等。
基本上,它总是关于寻找事件是否由属于列表对象的工作表单元格触发(因此是范围的交集)。2如果是,则触发相应的代码。
t3irkdon3#
我制作了一个软件包(alpha W.I.P,我可能会更改API):
https://github.com/Greedquest/ListObject-WithEvents
从README文档中,将其粘贴到包含表的工作表代码中(还有其他方法可以连接表,但只有工作表、工作簿和类模块可以声明
WithEvents
)当前暴露的事件列表: