执行剪切时Application.CutCopyMode = 0?

我已经写了一个macros来尝试禁用用户通过将其尝试转换为仅粘贴值来将其复制并粘贴到我的创build的条目表中的function。 我得到的报告是,这个macros并不总是在做它的工作,对我来说显然是因为我只是在注意“xlCopy”,而不是“xlCut”。

我把这个代码改成了这个,但结果是可怕的。 现在当用户做了一个剪切(我正在用Ctrl + X进行testing)时发生了什么,debugging模式显示Application.CutCopyMode = 0。更糟糕的是,每当我做了撤消(Ctrl + Z),这就是当debugging显示Application.CutCopyMode = 2(xlCut = 2,xlCopy = 1,否则= 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