如何解决Application.InputBox弹出的对话框单击取消出错的问题?

如下代码所示:

Sub QQ1722187970()
     Dim oRng As Range
     Set oRng = Application.InputBox("请选择要脱敏的数据区域", "脱敏", , , , , , 8)
End Sub

当弹出对话框后,不选择具体的单元格区域,而是单击“取消”按钮,则会报出类型不匹配的错误。

这是因为,当单击取消按钮后,Application.InputBox返回的值为False,不能赋值给对象变量。

这里提供两种解决办法:

方法一:赋值给Variant类型的变量,然后不用Set语句赋值,代码如下:

Sub QQ1722187970()
     Dim oRng As Variant
     oRng = Application.InputBox("请选择要脱敏的数据区域", "脱敏", , , , , , 8)
End Sub

方法二:用错误处理语句直接跳过类似错误,代码如下:

Sub QQ1722187970()
     On Error GoTo bty
     Dim oRng As Range
     Set oRng = Application.InputBox("请选择要脱敏的数据区域", "脱敏", , , , , , 8)
     Exit Sub
bty:
     Err.Clear
End Sub
       

发表评论