Word表单 - 使用VBA启用复选框单击上的文本框

时间:2015-04-10 18:16:31

标签: forms vba ms-word

每次点击一个复选框时,我都有以下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

提前感谢您的帮助!

1 个答案:

答案 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