VBA新手在这里。
我有一个 excel 电子表格,它被锁定以进行格式化。但是,如果粘贴到电子表格中,则复制的格式将粘贴到锁定的工作表中。我正在使用下面的代码在 excel 中创建一个事件来撤消和粘贴特殊值。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Application.CutCopyMode = xlCopy Then
Application.EnableEvents = False
Application.Undo
Target.PasteSpecial Paste:=xlPasteValues
Application.EnableEvents = True
End If
End Sub
这非常有效,但是,这仅在我在同一 excel 会话中复制和粘贴时才有效。如何使其适用于所有 excel 实例?
谢谢!担
将其粘贴到同一文件的 Thisworkbook 模块中(假设该模块当前为空!
Option Explicit
Private WithEvents App As Application
Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Application.CutCopyMode = xlCopy Then
Application.EnableEvents = False
Application.Undo
Target.PasteSpecial Paste:=xlPasteValues
Application.EnableEvents = True
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set App = Nothing
End Sub
Private Sub Workbook_Open()
Set App = Application
End Sub