检查用户选择的范围或取消

R4D*_*4D4 2 excel vba excel-vba

我有以下代码,提示用户选择一系列单元格.

我很难检查范围是否有效(即他们只是在输入框中输入了一个数字?)或是否按下取消.我该如何区分?

Do While (True)    
    Dim mInput As Range
    mInput = Application.InputBox(Prompt:="Please select the cells.", Type:=8)
    If (mInput Is Nothing) Then
        Exit Sub
    End If

    If (mInputRange.Columns.Count <> 1) Then
        MsgBox "There must be only one column selected.", vbOKOnly
    Else

    End If

Loop
Run Code Online (Sandbox Code Playgroud)

bre*_*tdj 5

虽然mkingston的代码确实有效(并且我赞成),但我认为最好先测试Nothing然后恢复为错误处理程序.然后代码可以流向一个动作,或者采取另一条路径,而不是需要恢复后期错误处理(我为无法预料的问题保留)

Sub test()
Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox("Please select the cells", Type:=8)
On Error GoTo 0
If Not rng Is Nothing Then
    If rng.Columns.Count <> 1 Then
        MsgBox "There must be only one column selected.", vbOKOnly
    Else
        'do stuff
    End If
Else
    MsgBox "User either cancelled range selected or selected an invalid range", vbCritical
End If
End Sub
Run Code Online (Sandbox Code Playgroud)