使用cancel msgbox删除对象所需的消息但不执行删除操作

时间:2015-08-12 03:41:21

标签: excel vba excel-vba

现在我可以删除,但每当我无法突出显示要删除的单元格时,都会给我一个需要的对象。我尝试使用取消消息框删除错误消息,但它不执行删除操作。需要帮助来纠正我的错误!

Sub deletetry2()

    Dim R As Range
    On Error Resume Next
    Set R = Application.InputBox("Select cells To be deleted", , , , , , , 8)
    On Error GoTo 0
    If TypeName(rng) <> "Range" Then
        MsgBox "Cancelled", vbInformation
        Exit Sub
    Else
    R.delete

End If


End Sub

1 个答案:

答案 0 :(得分:1)

Application.InputBoxInputBox更灵活。它的最后一个参数是一个类型参数,类型8对应于用鼠标选择范围。

示例代码:

Sub DeleteCells()
    Dim R As Range
    On Error GoTo err_handler 'if user hits "Cancel"
    Set R = Application.InputBox("Select cells To be deleted", , Selection.Address, , , , , 8)
    R.Delete
err_handler:
    'any needed error handling code here
End Sub

在编辑时:我修改了代码以包含brettdj的优秀建议,将选择作为默认范围。我还添加了一些错误捕获以捕获用户单击&#34;取消&#34;在输入框上。在这种情况下,错误处理只是退出函数,但肯定更多涉及错误处理可能适合您的特定情况。

最后的想法 - 确保你真的想要delete细胞。这有时是一个有问题的举动,因为它会导致其他细胞转移以填补真空。在许多情况下,ClearClearContents可以删除您要删除的内容,而不会影响其他单元格。