当用户试图删除一行时的 MsgBox
MsgBox when user tries to delete a row
我正在 excel 中构建工具并已保护工作簿,因此不允许删除或插入 rows/columns,使用以下代码:
Sub ProtectSheet()
ActiveSheet.Protect _
DrawingObjects:=False, _
Contents:=True, _
Scenarios:=False, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowInsertingColumns:=False, _
AllowInsertingRows:=False, _
AllowDeletingColumns:=False, _
AllowDeletingRows:=False, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True, _
Password:=cPassword
End Sub
但是,我还希望在用户尝试删除或插入 row/column 时出现一个消息框,告诉他们他们不能这样做并提供其他说明。谁能建议我如何做到这一点?
谢谢!
您可以像这样使用 select 离子变化事件(代码进入工作表的代码模块):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
If .Address = .EntireRow.Address Or .Address = .EntireColumn.Address Then
MsgBox "You can not insert or delete any row or column", vbInformation, "FYI"
End If
End With
End Sub
如果他们尝试通过 select 插入或删除整行或整列(这是我通常这样做的方式),那么将弹出此消息框,但如果你 select 更小的单元格范围。
我正在 excel 中构建工具并已保护工作簿,因此不允许删除或插入 rows/columns,使用以下代码:
Sub ProtectSheet()
ActiveSheet.Protect _
DrawingObjects:=False, _
Contents:=True, _
Scenarios:=False, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowInsertingColumns:=False, _
AllowInsertingRows:=False, _
AllowDeletingColumns:=False, _
AllowDeletingRows:=False, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True, _
Password:=cPassword
End Sub
但是,我还希望在用户尝试删除或插入 row/column 时出现一个消息框,告诉他们他们不能这样做并提供其他说明。谁能建议我如何做到这一点?
谢谢!
您可以像这样使用 select 离子变化事件(代码进入工作表的代码模块):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
If .Address = .EntireRow.Address Or .Address = .EntireColumn.Address Then
MsgBox "You can not insert or delete any row or column", vbInformation, "FYI"
End If
End With
End Sub
如果他们尝试通过 select 插入或删除整行或整列(这是我通常这样做的方式),那么将弹出此消息框,但如果你 select 更小的单元格范围。