有些时候我们用excel做表的时候希望某一列被隐藏而不被其它的人看到,但是常规的隐藏和显示对于保密性是没有任何门槛。今天我们讲如何讲如何彻底的隐藏某列某行。
1、Excel显示和隐藏工作表方法
这种方法最为简单,直接单击“菜单栏”的“格式”--工作表--隐藏;此时我们当前的这个工作表就会立刻被隐藏起来。如果想显示刚才隐藏的工作表,我们只需要 格式 -->工作表 -->取消隐藏,即可将刚才隐藏的工作表显示出来。如下图
2、第二步,点击工具--》保护--》保护工作表,如下图所示,设置一个保护密码,用来保护你的工作表。
这时回到工作区,点右键,取消隐藏区域是灰色,表示不能编辑。您以为到这里就结束了,其实不然。当你把表的内容区(包含隐藏区)复制时,然后新建一张表ctrl+V粘贴,发现把隐藏表的内容也复制过来了。
顿时崩溃!
3、防止复制
这里就要用到宏了,下面是我们写好的代码,将此代码复制到ALT+F11的代码区。大意是当你选中的表格包含隐藏区时,就会提示你禁止拷贝,没有隐藏区的不提示。OK,问题就此解决。
代码区:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i, Status As Boolean
Status = False
For i = Selection.Column To Selection.Column + Selection.Columns.Count - 1
If Columns(i).Hidden = True Then
Status = True
Exit For
End If
Next i
If Status = True Then
With Application
.OnKey "^c", ""
.OnKey "^x", ""
.CommandBars("Edit").Controls("复制(&c)").Enabled = False
.CommandBars("Edit").Controls("剪切(&T)").Enabled = False
.CommandBars("Standard").Controls("复制(&c)").Enabled = False
.CommandBars("Standard").Controls("剪切(&T)").Enabled = False
.CommandBars("ply").Enabled = False
.CommandBars("Cell").Enabled = False
.CommandBars("Row").Enabled = False
.CommandBars("column").Enabled = False
.CommandBars("View").Controls("分页预览(P)").Enabled = False
End With
MsgBox "禁止拷贝"
Else
With Application
.OnKey ("^c")
.OnKey ("^x")
.CommandBars("Edit").Controls("复制(&c)").Enabled = True
.CommandBars("Edit").Controls("剪切(&T)").Enabled = True
.CommandBars("Standard").Controls("复制(&c)").Enabled = True
.CommandBars("Standard").Controls("剪切(&T)").Enabled = True
.CommandBars("ply").Enabled = True
.CommandBars("Cell").Enabled = True
.CommandBars("Row").Enabled = True
.CommandBars("column").Enabled = True
.CommandBars("View").Controls("分页预览(P)").Enabled = True
End With
End If
End Sub
4、给宏加密码保护
还差最后一步啦,为了防止别人ALT+F11修改你的源代码,我们这里要把进入宏的时候加锁,这样就可万无一失了。如下图: