vba格式错误代码
嘿,首先感谢所有人回答我的其他问题。我对Excel VBA极其新颖,有些事情我只是挂上了电话。我有一个用户表单(没有嵌入工作表),我有几个字段是货币(金额等),如果有人输入一个字母,它们在命令按钮后出错,他们失去了所有信息。我需要错误代码,以便我可以在msgbox中告诉他们不应将字符放在货币字段中。我不需要特定于这些字段,但我不希望它们在命中按钮将数据转储到电子表格时丢失数据。vba格式错误代码
我该如何让他们看到错误信息,点击确定按钮,让我马上回到屏幕而不会丢失他们已经读取的数据?基本上给他们机会纠正他们的错误,但不必重新输入50场?
感谢
不能具体不实际的代码,但添加错误处理程序代码:
Sub SomeRoutine()
Dim stuff
On Error GoTo EH
' Code
Exit Sub
EH:
' Any errors with come here
If Err.Number = <specific errors to trap> Then
MsgBox "Oops..."
'As a debug tools, put a Resume here,
' but be sure to put a break on it,
' and don't leav it in the finished code
Resume
End If
End Sub
据我所知,你希望用户输入数字的数字只有到文本盒子 - 对吗?这是我通常做的。
在全球模块添加以下功能:
Function IFF(c, t, f)
Dim v
If c Then v = t Else v = f
IFF = v
End Function
然后在你的textbox_change事件中添加如下:
Private Sub txtAmount_Change()
txtAmount.Text = IFF(IsNumeric(txtAmounto.Text), Val(txtAmount.Text), 0)
End Sub
在框中这将基本上把0只要用户输入一个无效的号码。
希望这有助于
该方案的良好答案,但不是实际的_question_。 – RolandTumble 2011-05-13 20:05:50
一个稍微不同的看法就比由克里斯·尼尔森给出
Sub SomeRoutine
On Error GoTo ErrHandler 'doesn't matter where you put it
'as long as it's before the code you want to protect
'Dim Stuff
'Do Stuff
ExitRoutine: 'Note the colon(:), which makes this a label
'Any cleanup that you _always_ want
Exit Sub
ErrHandler:
Select Case Err.Number
Case <some error you want to handle specially>
'special handling
Case Else
'default handling, which may include:
Resume ExitRoutine
End Select
Resume
End Sub
需要注意的是,去年Resume
将永远得到正常处理击(如果你已经错误处理程序正确编写错误处理案例),但是当您在Break模式下进行调试时,可以让它将其设置为“Next Statement”。这是一个简单的方法,看究竟哪个语句抛出错误。
欢迎来到Stack Overflow。我注意到你没有接受任何你的问题的答案。如果你找到答案有用,你应该接受它(点击勾号)。如果你仍然不接受任何答案,最终人们会停止回答 – 2011-05-12 23:46:53