VBA Excel 如何监控,动态生成的text控件?

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
引用:
1、建立类模块,取名为:MyClass

Option Explicit
Public WithEvents myBttn As MSForms.CommandButton
Public WithEvents myTxt As MSForms.TextBox

Private Sub myBttn_Click()
MsgBox "单击我干吗?"
End Sub

Private Sub myTxt_Change()
MsgBox "变化了!"
End Sub

2、在模块中定义:

Option Explicit
Public mTxt As New MyClass

3、在窗体中动态添加控件:

Option Explicit
Private Sub UserForm_Activate()
Set mTxt.myBttn = UserForm1.Controls.Add(("Forms.CommandButton.1"), "cmd1", Visible)
Set mTxt.myTxt = UserForm1.Controls.Add(("Forms.TextBox.1"), "txt1", Visible)
End Sub
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
上面的代码,是监控一个textbox控件。
现在,假如我动态加载的textbox是数量未定的。或者5个,或者15个。而且名字都是有规律的
比如text00,text01。。。。。,现在如何进行监控他们的change事件?????????

类模块名称MyClass
代码:
Option Explicit
Public WithEvents myBttn As MSForms.CommandButton
Public WithEvents myTxt As MSForms.TextBox
Public Sub click(ctl As MSForms.CommandButton)
Set myBttn = ctl
End Sub
Public Sub change(ctl As MSForms.TextBox)
Set myTxt = ctl
End Sub
Private Sub myBttn_Click()
MsgBox "单击我干吗?"
End Sub '
Private Sub myTxt_Change()
MsgBox myTxt.Text
End Sub
窗体部分代码
Option Explicit
Private mTxt(1 To 3) As MyClass
Dim txt As MSForms.TextBox
Private Sub UserForm_Activate()
Dim i As Integer
For i = 1 To UBound(mTxt)
Set txt = Me.Controls.Add("Forms.TextBox.1", "Textbox" & i)
With txt
.Move 10, 10 + (i - 1) * 40, 80, 30
End With
Set mTxt(i) = New MyClass
mTxt(i).change txt
Next
End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-11
用控件数组

VBA Excel 如何监控,动态生成的text控件?
Private Sub myTxt_Change()MsgBox myTxt.Text End Sub 窗体部分代码 Option Explicit Private mTxt(1 To 3) As MyClass Dim txt As MSForms.TextBox Private Sub UserForm_Activate()Dim i As Integer For i = 1 To UBound(mTxt)Set txt = Me.Controls.Add("Forms.TextBox.1", "Textbox"...

Excel Vba 如何将单元格的值,同步显示在窗体中的LABEL或TEXTBOX中?
1、首先,在电脑中找到并打开Excel,在工具栏找到开发工具。2、然后,在开发工具栏下点开VisualBasic。3、然后,使用lable控件来来显示变量内容,接着双击按钮1进入按钮1的代码编写。4、在按钮1中输入:UserForm1.Label1.Caption = a。5、然后,回到form,点击运行窗体。6、最后,lable位置发生了变化,...

excel vba 输入text1后回车光标自动跳到text2后光标自动跳回text1,如何...
回答:下载文件:Book1_20130918100402.xls|给你一个例子: 在窗体的在text1输入任意字符,数量等于6个或按回车键,就自动把焦点切换到text2,并清空.在text2输入任意字符,只要等于4个或按回车键,就自动切换回text1,并清空.

使用Excel VBA,对窗体中的一个文本框控件,如何可以不断滚动两位数字,就 ...
flag = True '初始化中断变量。当中断变量为真时开始循环 Do While flag DoEvents '释放程序控制权,允许执行其它事件。TextBox1 = 10 + Int(Rnd * 90) '文本框动态显示10到99 Loop PS:如要中断循环,可通过其他程序改变flag为False ...

在excel中的VBA里如何使用批量读取控件(如文本框)中的数据。
In……Next”对工作表里面的每一个文本框、图形进行访问,然后使用“.TextFrame2.TextRange.Text”获取里边的文本数据写入单元格。VBA程序如下截图,shp为工作表Sheet1里边所有图形中的一个(每执行一次For循环就提取一个,不重复)。【注】上图的VBA程序引用自百度经验《使用VBA提取文本框的文本数据》...

vba 如何将一个已经动态生成的excel工作表里的某两个单元格进行判断,并...
首先,先选择要合并的单元格区域。选择单元格区域后,用点击开始选项卡中的“复制”按钮或者按键盘的“Ctrl+C”键等方法进行复制。复制后点击开始选项卡中下图所示的“剪贴板”功能区右下角的按钮,这个按钮比较小。点击后会打开Excel自带的剪贴板,在剪贴板中会显示已复制的内容。此时用鼠标双击要粘贴的...

vba如何获取excel文本框的值,如图鼠标处插入的文本框
录制宏 dim a as string a= ActiveSheet.Shapes.Range(Array("TextBox 1")).TextFrame2.TextRange.Characters.Text

...也就是在EXCEL中页面在翻页时,而控件永远可以看得到
有一个最简单的方法:你可以将你的控件移到第一行,然后在第二行第一格点一下鼠标,然后在菜单中选择:窗口〉冻结窗口,现在试试看,控件是不是已经不动了。希望对你能有帮助。

5214ExcelVBA窗体的Caption和Text属性
标签、命令按钮、复选框、单选按钮、数据(Data)和框架(Frame)控件具有Caption属性,而文字框(TextBox )、列表框(ListBox )和组合框(ComboBox)控件具有Text属性。 Caption属性比较特殊,它可以包含带有前导&的字符.带有前导&的字符就是运行时触发控件事件的快捷键。Text属性一般是控件的默认属性,也就是...

请问用excel的VBA如何操纵记事本,比如读,写等的操作?
Sub 工作表到文本() '以output打开方式 Dim i As Long, irow As Long, S As String Const NName As String = "E:\\excel\\02-操作txt文件input、output\\数据.txt"Open NName For Output As #1 irow = [a65536].End(xlUp).Row For i = 1 To irow S = Cells(i, 1) & " | " & ...

相似回答
大家正在搜