gpt4 book ai didi

vba - 根据用户操作将过程附加到事件

转载 作者:行者123 更新时间:2023-12-02 19:46:24 27 4
gpt4 key购买 nike

比如说,我有一个程序可以根据选择的变化来更改单元格的随机颜色。我知道我可以在工作表 SelectionChange 事件的过程中进行编码。

我想我想问,就像在 javascript 中我们可以使用 addEventListeners 一样,我们可以在 Excel VBA 中做类似的事情吗?

enter image description here

我想知道这可以动态完成吗? IE。当用户选择一个选项时,然后我将一个过程绑定(bind)到工作表的 SelectionChange 事件。

注意,我知道我可以声明一个全局 bool 值并使用它来确定用户操作并在我的 SelectionChange 事件过程中使用它。

我只是好奇在 Excel VBA 中,我们是否可以动态地将过程附加到事件中?

最佳答案

您无法动态分配事件处理程序。 Excel 将始终调用内置事件处理程序(SelectionChangeCalculate 等),并且无法替代您自己的事件处理程序。不过,您可以使用WithEvents关键字创建自己的Worksheet变量,并选择何时开始接收事件。例如,从您的一张工作表中的以下结构开始:

Dim WithEvents MySheet As Worksheet

Private Sub MySheet_SelectionChange(ByVal Target As Range)

Debug.Print "Receiving events"

End Sub

只要 MySheet 未绑定(bind)到事件工作表,您就不会收到任何事件。当您准备好开始时,调用自定义子例程来完成分配:

Public Sub DoIt()

Set MySheet = Sheet1

End Sub

关于vba - 根据用户操作将过程附加到事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32046504/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com