禁止选择或复制 Excel 中的隐藏单元格
Forbid selecting or copying hidden cells in Excel
我正在为其他用户开发一些电子表格,其中有几列我不希望用户看到。所以我隐藏它们并锁定电子表格。我隐藏它们而不是删除它们的原因是为了进一步开发。但是,我发现用户可以 select 更大范围地跨越隐藏单元格,通过复制和粘贴来获取隐藏信息。无论如何我可以禁止用户这样做吗?我在网上搜索到的方法都是关于如何select只显示单元格,而不是强制他们这样做并阻止他们获取隐藏信息。谁能帮我解决这个问题?
使用 VBA,您可以利用 Selection Change 事件,使用 Intersect
测试 selection 是否跨越那些隐藏的列,然后 select 工作表的一个单独的可见部分。
例如,如果列 D:F
被隐藏,
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Me.Columns("D:F")) Is Nothing Then
MsgBox "Your selection includes hidden column(s). BAD!", vbCritical
Me.Range("A1").Select
End If
End Sub
此代码进入工作表的代码模块。
使用下面的代码试试。
Range("A1:A20").SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Range("A25").Select
ActiveSheet.Paste
您可以select使用此方法只复制可见的单元格。
我正在为其他用户开发一些电子表格,其中有几列我不希望用户看到。所以我隐藏它们并锁定电子表格。我隐藏它们而不是删除它们的原因是为了进一步开发。但是,我发现用户可以 select 更大范围地跨越隐藏单元格,通过复制和粘贴来获取隐藏信息。无论如何我可以禁止用户这样做吗?我在网上搜索到的方法都是关于如何select只显示单元格,而不是强制他们这样做并阻止他们获取隐藏信息。谁能帮我解决这个问题?
使用 VBA,您可以利用 Selection Change 事件,使用 Intersect
测试 selection 是否跨越那些隐藏的列,然后 select 工作表的一个单独的可见部分。
例如,如果列 D:F
被隐藏,
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Me.Columns("D:F")) Is Nothing Then
MsgBox "Your selection includes hidden column(s). BAD!", vbCritical
Me.Range("A1").Select
End If
End Sub
此代码进入工作表的代码模块。
使用下面的代码试试。
Range("A1:A20").SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Range("A25").Select
ActiveSheet.Paste
您可以select使用此方法只复制可见的单元格。