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

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

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 

Application.InputBoxInputBox更灵活。 它的最后一个参数是一个types参数,types8对应于用鼠标select一个范围。

示例代码:

 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的出色build议纳入默认范围。 我还添加了一些错误陷阱来捕捉用户在input框上单击“取消”的情况。 在这种情况下,error handling就是退出函数,尽pipe更多的error handling可能适合您的具体情况。

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