如果由代码调用,则停止执行“TextBox_Change”事件

时间:2015-01-23 10:54:37

标签: vba textbox userform

我有一个userform,其中包含一个名为TextBox的{​​{1}}对象。

对象内部的文本可以由用户 或由代码更改 。有" onChange"附加到文本框的程序:

myTextBox

我希望只有当用户更改文本时才会处理事件,而不是代码。我曾想过添加一个可选参数,如下所示:

Private Sub myTextBox_Change()
    'do some stuffs
End Sub

但这并不是很有用,因为我无法以编程方式更改名称时传递Private Sub myTextBox_Change(Optional isCode As Boolean) If isCode = False Then 'do some stuffs End If End Sub ,如下所示:

isCode = True

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

一种方式(也许不是正确的方法?)将声明一个全局变量以与IsCode Boolean相同的方式使用。在代码块期间将其设置为true,以便textbox_change事件知道代码正在后台处理,然后在代码完成时设置回false。

将它放在普通模块的顶部(不能在表单模块中使用)

Option Compare Database
Option Explicit
Global IsCode As Boolean

然后在您运行的代码中根据需要设置IsCode=true