您所在的位置:首页 > 学习教程 > office教程 > 正文

Excel 2003中如何利用宏vba来彻底隐藏某列

来源:宁波新锦程 日期:2013/4/16 23:04:05 人气:627 标签:

有些时候我们用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修改你的源代码,我们这里要把进入宏的时候加锁,这样就可万无一失了。如下图:


    微信 QQ 电话