每次点击一个复选框时,我都有以下VBA代码来启用文本框。
Private Sub CheckName1_Click()
If CheckName1.Value = True Then
TextName1.Enabled = False
TextName1.SpecialEffect = fmSpecialEffectFlat
Else
TextName1.Enabled = True
TextName1.SpecialEffect = fmSpecialEffectSunken
End If
End Sub
问题是我的文档在完成时可能有30个(CheckName1,CheckName2,CheckRent1,CheckRent2等)。我已经遇到了Word滞后的问题,所以我想创建一个子程序来调用这个子程序而不是一次又一次地复制/粘贴它。
我没有花很多时间在功能等方面 - 甚至更少用VBA。我只知道基础知识,他们总是让我头晕目眩。所以,这就是我所拥有的。
我只是不知道如何传递textbox参数,或者我甚至没有使用checkbox参数。
如果接近,我是否还会为每个复选框创建一个电话?
Private Sub CheckName1_Click()
Call NA
End Sub
Private Sub NA(checkbox, textbox)
If checkbox.value = True Then
textbox.Enabled = False
textbox.SpecialEffect = fmSpecialEffectFlat
Else
textbox.Enabled = True
textbox.SpecialEffect = fmSpecialEffectSunken
End Sub
提前感谢您的帮助!
答案 0 :(得分:2)
循环所有控件
基于此示例:http://www.ozgrid.com/VBA/control-loop.htm
Dim cCont As Control
For Each cCont In Me.Controls
If TypeName(cCont) = "TextBox" Then
'DO STUFF HERE
End If
Next cCont