Tag: 事件用户

EXCEL VBA:dblClick,重复代码改进

我有一堆类似构造的用户表单上有许多相同的对象。 对于我的标签(超过50个),我创build了一个dblClick事件来允许用户更改标题。 这工作正常,但我想知道是否有一种方法可以改善我的代码。 有没有一种方法可以避免为了处理不同对象上的相同事件而创build相同代码的几十个副本? 这是我的代码: Private Sub Item1_Label_dblClick(ByVal Cancel as MSForms.ReturnBoolean) Item1_Label.Caption = InputBox("blah?", "blah", Item1_Label.Caption) if Item1_Label.Caption = "" Then Item1_Label.Caption = "Item 1" End Sub Private Sub Item2_Label_dblClick(ByVal Cancel as MSForms.ReturnBoolean) Item2_Label.Caption = InputBox("blah?", "blah", Item2_Label.Caption) if Item2_Label.Caption = "" Then Item2_Label.Caption = "Item 2" End Sub Private Sub Item3_Label_dblClick(ByVal Cancel as MSForms.ReturnBoolean) […]

VBA – 在dynamic创build的文本框上捕获事件

我正在Excel中编写一个VBA应用程序。 我有一个用户窗体,根据其中一个工作表中包含的数据dynamic构build自己。 所有创build各种combobox,文本框和标签的代码正在工作。 我创build了一个类模块来捕获combobox的OnChange事件,并且按预期工作。 现在我需要为某些文本框捕获OnChange事件,所以我创build了一个新的类模块,用于combobox捕获事件。 Public WithEvents tbx As MSForms.TextBox Sub SetTextBox(ctl As MSForms.TextBox) Set tbx = ctl End Sub Public Sub tbx_Change() Dim LblName As String MsgBox "You clicked on " & tbx.Name, vbOKOnly End Sub 消息框只是让我可以确认它的工作,然后再走。 我得到的问题是在UserForm代码模块中: Dim TBox As TextBox Dim tbx As c_TextBoxes '[…] Set TBox = lbl Set tbx = […]

如何检测一个特定的键是否被按下?

我想知道是否有一种方法来检测是否按下特定的键(如backspace)。 这是我拍摄的: Private Sub SomeTextBox_Change() If len(Me.SomeTextBox.Value) = 3 and KEYPRESSED is NOT BACKSPACE Then <…….Code Here> Else <…….Code Here> End if End Sub