我编写了一个宏来尝试禁用用户通过将他们的尝试转换为仅粘贴值来复制和粘贴到我创建的条目表中的能力。我得到报告说这个宏并不总是在起作用,而且我觉得很明显,因为我只是在关注“xlCopy”而不是“xlCut”。
我将代码更改为此,但结果非常可怕。现在当用户进行切割时发生了什么(我正在使用Ctrl + X进行测试),调试模式显示Application.CutCopyMode = 0.更糟糕的是每当我进行撤消(Ctrl + Z)时,那就是调试时显示Application.CutCopyMode = 2(xlCut = 2,xlCopy = 1,else = 0)。
任何想法可能是什么问题?
Private Sub Worksheet_Change(ByVal Target As Range)
If Me.ProtectContents = True And Application.CutCopyMode = xlCopy Then '' Only prevent if sheet is protected and user is copying.
Application.EnableEvents = False
Application.Undo
Target.PasteSpecial (xlPasteValues)
Application.EnableEvents = True
End If
End Sub