Word Vba用户表单文本框onChange
我有一个用户表单,有一个文本框字段,还有ok和cancel按钮 对于myRun宏: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
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将删除其中存储的所有变量。这就是为什么你需要把它放在任何函数之外。这称为全局变量