范围对象的Excel错误处理
问题描述:
我正在处理用户可以输入范围的Excel用户表单。例如,他们可以放入“B5”和“B20”。范围对象的Excel错误处理
我试图做错误处理,以防止用户输入错误的范围。例如,“asdf”和“fdsa”。
下面的代码失败:
Private Sub cmdSend_Click()
Dim beginTerm As String
Dim endTerm As String
beginTerm = TermsBegin.Text
endTerm = TermsEnd.Text
If (IsError(Worksheets("Account Information").Range(beginTerm + ":" + endTerm)) = True) Then
MsgBox "Cell Range is invalid."
Exit Sub
End If
End Sub
我也试过如下:
Private Sub cmdSend_Click()
Dim beginTerm As String
Dim endTerm As String
beginTerm = TermsBegin.Text
endTerm = TermsEnd.Text
Dim myRange As Range
myRange = Worksheets("Account Information").Range(beginTerm + ":" + endTerm)
On Error GoTo ErrHandler
On Error GoTo 0
'other code ...
ErrHandler:
MsgBox "Cell Range is invalid."
Exit Sub
End Sub
我的问题是如何处理它失败的情况下?
谢谢!
答
你必须把
On Error GoTo ErrHandler
会抛出异常错误的行之前。
答
如果您需要从用户那里获得一个范围,我建议使用Type.In = 8的Application.InputBox。这允许用户从工作表中选择一个范围。
检查了这一点: http://www.ozgrid.com/VBA/inputbox.htm
此外,如果您使用的是用户窗体,你也可以添加一个命令按钮将调用Application.InputBox允许用户选择范围。
简单的例子:
Private Sub CommandButton1_Click()
Dim r As Range
On Error Resume Next
Set r = Application.InputBox(Prompt:= _
"Please select a range with your Mouse to be bolded.", _
Title:="SPECIFY RANGE", Type:=8)
If Not r Is Nothing Then MsgBox r.Address
On Error GoTo 0
End Sub
也许只是使用RefEdit控件呢? –