提示用户确认行删除

Joh*_*eph -1 excel vba

我的用户需要删除行的能力。他们可以轻松地右键单击行选择器并选择“删除”。如何添加提示,让用户确认他们要删除一行?

在此处输入图片说明

请注意, Worksheet_BeforeDelete() 不会捕获行删除。

Joh*_*eph 5

以下解决方案将“删除行”自定义菜单项添加到行上下文菜单。右键单击行选择器时看起来像这样。它会在实际删除行之前提示用户确认行删除...

确认讯息

在项目级模块中,添加以下子例程...

Public Sub DeleteRow()

    If MsgBox("Are you sure?", vbOkCancel, "Confirm Delete") = vbOk Then
        Selection.EntireRow.Delete
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

在工作表代码模块中,添加以下子例程...

Private Sub Worksheet_Activate()

    'reset to standard context menu before adding new option
    Application.CommandBars("Row").Reset

    'add custom row deletion call
    With Application.CommandBars("Row").Controls.Add
        .Caption = "Delete Row"
        .Style = msoButtonCaption
        .OnAction = "DeleteRow"
    End With

End Sub

Private Sub Worksheet_Deactivate()
    'get rid of the customization when you're done with this sheet
    Application.CommandBars("Row").Reset

End Sub
Run Code Online (Sandbox Code Playgroud)

  • 做得好!请注意,您还可以*删除*默认“删除”上下文命令的命令栏按钮-否则它仍然可用=)也..(仅仅是挑剔)-我会使用`vbYesNo`代替` vbOkCancel`,也可以使用 `vbExclamation`(或不使用 - 用户喜欢忽略警告!) (2认同)