【发布时间】:2014-04-16 12:41:00
【问题描述】:
在 EXCEL 用户窗体上,我有几个文本框。由于它们是动态创建的,它们的数量可能会有所不同。
我想实现以下目标: 当用户单击任何文本框时,我想显示一个 Msgbox,但仅在此特定用户窗体上显示,并且第一次单击仅显示一次。
你能给我一个帮助我实现这一目标的文档的指针吗?
在谷歌上搜索后,我的代码如下所示:
用户表单:创建可变数量的文本框
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
我想我可能必须创建一个类模块,但我对此完全陌生,我想我需要一个写得很好的例子和一些解释 cmets,拜托。当我点击一个文本框时,我上面的代码什么都不做。
【问题讨论】:
-
我不知道该怎么做。嗯……你试过了吗?我建议使用某种标志来了解在捕获点击后是否点击了文本框。请用一些代码完成问题。
-
你是对的。我希望我编辑的帖子有帮助
标签: excel vba textbox user-input