VBA的Excel复制只有按键可见的单元格按Ctrl + C
我有一个75列和数千行的数据excel。 在75列中,我使用5列作为我的vba编码目的。 这5列保存标志( 0
或1
),我locking单元格在相应的行( 标志来自数据库 )的基础上。 由于用户不希望这些标志列我只隐藏这些列,但是当用户试图将数据从我的工作簿复制到另一个工作簿时,用户可以复制客户端不需要的隐藏列。
那么是否有限制他们不要复制隐藏的列通过VBA或任何设置? 其实对于这个问题,我认为是按Ctrl + C键,我试图改变Selection.Copy
作为Selection.Range.SpecialCells(xlCellTypeVisible)
。 但是我得到一些错误,如wrong number of arguments or invalid property assignment
。
代码行是
Private Sub Workbook_Open() Application.OnKey "^c", "Copy" End Sub Sub Copy() If Selection Is Nothing Then Else Selection.Copy = Selection.Range.SpecialCells(xlCellTypeVisible) End If 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
注 :我已经使用了error handling,这是必须的,因为用户可能会select非连续的范围,如果error handling没有完成,代码将会中断。