VBA的Excel复制只有可见的单元格上键按Ctrl + C为受保护的工作表
我试图replaceCTRL + C,所以它只会复制受保护的工作表上的可见单元格。 试图解决这个问题我偶然发现这个post( VBA的Excel复制只有可见的单元格按键Ctrl + C )
下面的代码(由Siddharth-Routbuild议)可以工作,但只适用于不受保护的工作表:
Private Sub Workbook_Open() Application.OnKey "^c", "Copy" End Sub Sub Copy() Dim rng As Range On Error GoTo Whoa If Not Selection Is Nothing Then Set rng = Selection.Cells.SpecialCells(xlCellTypeVisible) rng.Copy End If LetsContinue: Exit Sub Whoa: MsgBox Err.Description, vbCritical, "Error Number : " & Err.Number Resume LetsContinue End Sub
我尝试了解保护,复制,然后重新保护,但删除了副本。 我需要最后的表格来保护。 任何帮助,将不胜感激。
啊! 从过去的爆炸:P
您需要在复制之前取消保护和保护。 另外我正在使用ActiveSheet
进行演示。 如果需要,将其更改为相关的表格。
这是你正在尝试?
Sub Copy() Dim rng As Range Dim MyPassword As String '~~> Change password as applicable MyPassword = "Sid" On Error GoTo Whoa If Not Selection Is Nothing Then ActiveSheet.Unprotect MyPassword Set rng = Selection.Cells.SpecialCells(xlCellTypeVisible) ActiveSheet.Protect MyPassword rng.Copy End If LetsContinue: Exit Sub Whoa: MsgBox Err.Description, vbCritical, "Error Number : " & Err.Number Resume LetsContinue End Sub