繁体   English   中英

Excel VBA-在工作簿中禁用复制/剪切粘贴

[英]Excel VBA - Disabling copy/cut-paste in workbook

我试图找到一种方法来防止在Excel单元格中进行复制/剪切粘贴。 我禁用了单元格的复制/粘贴功能,但是发现了一个缺陷,即如果用户复制了该单元格的实际值,他便可以粘贴(仅在1个单元格而不是单元格范围内),从而使禁用的复制/粘贴无效。

我从另一个问题中使用了以下代码行:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.CutCopyMode = False

Dim UndoList As String

With Application
    .EnableEvents = False
    .ScreenUpdating = False
End With

On Error GoTo ErrExit
UndoList = Application.CommandBars("Standard").Controls("&Undo").List(1)
If Left(UndoList, 5) = "Paste" Or UndoList = "Auto Fill" Then
    MsgBox "Please don't paste values on this sheet." & vbCr & _
           "The action will be reversed.", vbInformation, _
           "Paste is not permitted"
    With Application
        .Undo
        .CutCopyMode = False
    End With
    Target.Select
End If

ErrExit:
With Application
    .ScreenUpdating = True
    .EnableEvents = True
End With
End Sub

如何使用Application.Onkey

Sub DisableCutCopyPaste()
Application.OnKey "^{c}", "" 'Copy
Application.OnKey "^{v}", "" 'Paste
Application.OnKey "^{x}", "" 'Cut
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM