Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 遍历一系列文本框_Arrays_Vba_Loops_Ms Word - Fatal编程技术网

Arrays 遍历一系列文本框

Arrays 遍历一系列文本框,arrays,vba,loops,ms-word,Arrays,Vba,Loops,Ms Word,我在一个MS Word文档中有大约13个文本框,它们使用活动的X文本框控件。我发现这段代码在我的测试中非常有效,只使用了一个文本框 我如何按名称循环浏览所有13个文本框,而不是将此代码添加到所有13个文本框中 Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii > Asc("9") Or KeyAscii < Asc("0") Then If KeyAscii =

我在一个MS Word文档中有大约13个文本框,它们使用活动的X文本框控件。我发现这段代码在我的测试中非常有效,只使用了一个文本框

我如何按名称循环浏览所有13个文本框,而不是将此代码添加到所有13个文本框中

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii > Asc("9") Or KeyAscii < Asc("0") Then
    If KeyAscii = Asc("-") Then
        If InStr(1, Me.TextBox1.Text, "-") > 0 Or _
           Me.TextBox1.SelStart > 0 Then KeyAscii = 0
    ElseIf KeyAscii = Asc(".") Then
        If InStr(1, Me.TextBox1.Text, ".") > 0 Then KeyAscii = 0
    Else
        KeyAscii = 0
    End If
End If
End Sub
Private Sub TextBox1\u按键(ByVal keyscii作为MSForms.ReturnInteger)
如果KeyAscii>Asc(“9”)或KeyAscii0或_
Me.TextBox1.SelStart>0然后keyacii=0
ElseIf keyscii=Asc(“.”),则
如果InStr(1,Me.TextBox1.Text,“.”>0,则KeyAscii=0
其他的
KeyAscii=0
如果结束
如果结束
端接头

您可以这样做:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    HandleKeyPress Me.TextBox1, KeyAscii
End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    HandleKeyPress Me.TextBox2, KeyAscii
End Sub



Private Sub HandleKeyPress(txtBox As Object, ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii > Asc("9") Or KeyAscii < Asc("0") Then
    If KeyAscii = Asc("-") Then
        If InStr(1, txtBox.Text, "-") > 0 Or _
          txtBox.SelStart > 0 Then KeyAscii = 0
    ElseIf KeyAscii = Asc(".") Then
        If InStr(1, txtBox.Text, ".") > 0 Then KeyAscii = 0
    Else
        KeyAscii = 0
    End If
End If
End Sub
Private Sub TextBox1\u按键(ByVal keyscii作为MSForms.ReturnInteger)
HandleKeyPress Me.TextBox1,键ASCII
端接头
专用子文本框2u按键(ByVal KEYSCII作为MSForms.ReturnInteger)
HandleKeyPress Me.TextBox2,键ASCII
端接头
私有子HandleKeyPress(txtBox作为对象,ByVal KeyAscii作为MSForms.ReturnInteger)
如果KeyAscii>Asc(“9”)或KeyAscii0或_
txtBox.SelStart>0然后keyscii=0
ElseIf keyscii=Asc(“.”),则
如果InStr(1,txtBox.Text,“.”>0,则KeyAscii=0
其他的
KeyAscii=0
如果结束
如果结束
端接头