希望这对那里的某个人来说很简单。我有一个带有大量用于输入参数的文本框的Excel VBA UserForm。此外,用户表单上还有一个图像。当用户单击文本框时,通过触发_Enter()事件以显示相关参数的图像来更改UserForm上的图像。这工作正常,这不是问题。但是,随着用户退出文本框,我希望图像恢复为原始图像。我已经尝试使用_Exit()和_Afterupdate()的事件来使此工作有效,尽管如果我更新参数可以正常工作,但是如果我不更新参数则无法正常工作。本质上,图像会随着我进入文本框而改变,但不会改变,除非我在文本框中更新值。
有人知道为什么会这样吗,我对此有什么能力?
更新(使用要求的代码)。现在,我发现没有触发文本框退出事件,因为我的UserForm上有多个框架,并且我单击了另一框架中的控件。我做了下面的例子。
和以下代码;
Option Explicit
Dim TextBox1Data As Variant,TextBox2Data As Variant
Private Sub TextBox1_Afterupdate()
TextBox1Data = TextBox1.Value
Debug.Print "Afterupdate Textbox 1"
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Debug.Print "Exit Textbox 1"
End Sub
Private Sub TextBox2_Afterupdate()
TextBox2Data = TextBox2.Value
Debug.Print "Afterupdate Textbox 2"
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Debug.Print "Exit Textbox 2"
End Sub
Private Sub UserForm_Initialize()
ComboBox1.List = Array("Item 1","Item 2","Item 3","Item 4")
ComboBox1.Text = ComboBox1.List(1)
End Sub
如果我单击TextBox1,然后单击ComboBox1或CheckBox1,则会触发TextBox1的Exit事件。但是,如果我单击TextBox1,然后单击CheckBox2或CheckBox3,则不会触发该事件。我认为这是因为CheckBoxes位于不同的框架中。是这样吗从一帧移到另一帧时,是否可以触发TextBox的Exit事件?