在EXCEL Userform上,我有几个Textbox。它们的数量可以随着动态创建而变化。
我想实现以下目标: 当用户点击任何文本框时,我想显示一个消息框,但只显示此特定用户窗体,而第一次点击只显示一次。
你能给我一个文档指针,帮助我实现这个目标吗?
点击谷歌搜索后,我的代码如下:Userform:创建可变数量的文本框
Option Explicit
Dim oKlasseExcel() As Klasse1
Sub userform_initialize()
Dim i As Long
Dim k As Long
k = InputBox("insert number")
i = 0
Do
ReDim oKlasseExcel(0 To i)
Set oKlasseExcel(i) = New Klasse1
Set oKlasseExcel(i).objTextbox = Userform1.Controls.Add("Forms.Textbox.1", "Textbox" & CStr(i))
With oKlasseExcel(i).objTextbox
.Left = 30
.Top = 75 + 25 * i
.Width = 300
.Height = 25
.MultiLine = True
End With
i = i + 1
Loop Until i = k
End Sub
课程模块:
Option Explicit
Public WithEvents objTextbox As MSForms.TextBox
Sub objTextbox_click()
MsgBox objTextbox.Name & ": Changeereignis ausgelöst!"
End Sub
我想我可能要创建一个类模块,但我对此完全是新手,我想我需要一个写得很好的例子,并附上一些解释性的评论。当我点击文本框时,上面的代码没有任何作用。
答案 0 :(得分:0)
如果您不想创建任何其他数据结构来捕获点击次数,也许您可以尝试更改一些TextBox属性,例如: 使用WordWrap = False创建一个TextBox,在单击它之后将其值更改为True - 然后您可以区分单击的是什么。