现在我可以删除,但每当我无法突出显示要删除的单元格时,都会给我一个需要的对象。我尝试使用取消消息框删除错误消息,但它不执行删除操作。需要帮助来纠正我的错误!
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
答案 0 :(得分:1)
Application.InputBox
比InputBox
更灵活。它的最后一个参数是一个类型参数,类型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
细胞。这有时是一个有问题的举动,因为它会导致其他细胞转移以填补真空。在许多情况下,Clear
或ClearContents
可以删除您要删除的内容,而不会影响其他单元格。