Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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
Word Vba用户表单文本框onChange_Vba_Ms Word - Fatal编程技术网

Word Vba用户表单文本框onChange

Word Vba用户表单文本框onChange,vba,ms-word,Vba,Ms Word,我有一个用户表单,有一个文本框字段,还有ok和cancel按钮 对于myRun宏: Sub myUserForm() UserForm1.TextBox1.Value = Selection.Font.Size UserForm1.Show End Sub 对于我的表格marco: Private Sub TextBox1_Change() Dim myValue As String myValue = UserForm1.TextBox1.Value

我有一个用户表单,有一个文本框字段,还有ok和cancel按钮

对于myRun宏:

Sub myUserForm()
    UserForm1.TextBox1.Value = Selection.Font.Size
    UserForm1.Show
End Sub
对于我的表格marco:

Private Sub TextBox1_Change()
    Dim myValue As String
    myValue = UserForm1.TextBox1.Value
    If Not IsNumeric(myValue) Then
        MsgBox "Please enter a number"
        MsgBox myValue
    End If
End Sub
我想问的是,当myValue不是数字时,是否可以得到前一个值的值

如果我的选择文本大小为10pt,则当我运行表单时,文本框1中会显示“10”,当我将文本框字段更改为“text”时,我会提示“请输入一个数字”并提示“text”是否可以提示10?

您的意思是:

Dim myNumber
If Not IsNumeric(myValue) Then
myNumber = InputBox("Enter number:")
MsgBox "Entered " & myNumber
End If

请注意,负数也是数字。

您可以将其存储在变量中。您必须将Dim myNumber放入模块顶部。当我加载表单时,文本框字段的值为“10”,然后我将其更改为“text”,我想提醒“10”在我更改文本框字段后,您希望存储一个全局变量:将Dim myNumber放在顶部,这样它就是全局变量。如果不是数字(myValue),那么myValue=myNumber Else myNumber=myValue after:myValue=userForm1.TextBox1.Value您是指私有子TextBox1_Change()Dim myNumber如果不是数字(myValue),那么myValue=myNumber Else myNumber=myValue after:myValue=userForm1.TextBox1.Value End SubNo。你需要把Dim myNumber放在窗口的第一行。如果调用TextBox1_Change并到达End Sub,VBA将删除其中存储的所有变量。这就是为什么你需要把它放在任何函数之外。这称为全局变量