禁止选择或复制 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使用此方法只复制可见的单元格。