2013-02-06 79 views
0

我正在處理用戶可以輸入範圍的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 

我的問題是如何處理它失敗的情況下?

謝謝!

+0

也許只是使用RefEdit控件呢? –

回答

1

你必須把

On Error GoTo ErrHandler 

會拋出異常錯誤的行之前。

0

如果您需要從用戶那裏獲得一個範圍,我建議使用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