EXCEL表格,通过VBA公式实现自动隐藏功能。

如果C列和D列中的单元格内容数据同时等于0或者“”,自动隐藏一整行。应该如何实现呢?我参考这个公式,但不会修改。PrivateSubWorksheet_Calculate... 如果C列和D列中的单元格内容数据同时等于0或者“”,自动隐藏一整行。应该如何实现呢?
我参考这个公式,但不会修改。
Private Sub Worksheet_Calculate()
Dim i As Integer
Application.EnableEvents = False
Cells.EntireRow.Hidden = False
For i = 1 To Cells(1, 1).SpecialCells(xlLastCell).Row()
If Cells(i, 1).Text = "0" Then Cells(i, 1).EntireRow.Hidden = True
Next i
Application.EnableEvents = True
End Sub
展开
 我来答
绿衣人敲门
推荐于2016-02-14 · 知道合伙人软件行家
绿衣人敲门
知道合伙人软件行家
采纳数:18765 获赞数:63778
毕业于西北大学计算机网络技术专业,现在在西安电力学院进行网络推广维护工作!

向TA提问 私信TA
展开全部

1.在工作表界面按下组合快捷键Alt+F11或者右键单击任意一个工作表标签,在弹出的右键快捷菜单单击“查看代码”进入VBA编辑环境,如下图所示:

2.在任意一个模块的代码窗口中输入以下的代码

Sub xyf()

    Sheet1.Visible = xlSheetHidden

End Sub

然后将光标定位于Sub 与End Sub 之间按下快捷键F5运行代码既可以将第一个工作表隐藏。


3.如果要将某个工作表取消隐藏可以使用如下的代码

Sub xyf()

    Sheet1.Visible = xlSheetVisible

End Sub

通过修改工作表对象的Visible属性可以在隐藏和取消隐藏之间切换。



4.如果需要批量隐藏或者取消隐藏多个工作表可以使用如下的代码


Sub xyf()

    '定义一个工作表变量对象

    Dim oWS As Worksheet

    For Each oWS In Excel.ThisWorkbook.Worksheets

        '批量取消隐藏

        oWS.Visible = xlSheetVisible

    Next

End Sub

通过 For Each 。。。Next的循环遍历每一个工作表,通过对每一个工作表的

Visible属性的设置可以实现批量取消隐藏或者批量隐藏工作表。

如下图所示


5.当通过运行以上的代码模式批量隐藏工作表时会弹出如错误提示

Sub xyf()

    '定义一个工作表变量对象

    Dim oWS As Worksheet

    For Each oWS In Excel.ThisWorkbook.Worksheets

        '批量隐藏

        oWS.Visible = xlSheetHidden

    Next

End Sub

这个是因为任意一个工作簿至少要有一个可见的工作表,不能所有工作表都隐藏,可以通过添加一些条件判断代码来解决。

姓王的wy451

2014-01-08 · TA获得超过48.3万个赞
知道大有可为答主
回答量:8万
采纳率:78%
帮助的人:8932万
展开全部
要实现你的要求,代码是很简单的。但你应发个样表或截图来,因为你在sheet1表输入数据,不知是怎样分配在sheet2和sheet3的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
善良的猪头3
推荐于2016-03-27 · TA获得超过2932个赞
知道大有可为答主
回答量:2522
采纳率:71%
帮助的人:2803万
展开全部
Private Sub Worksheet_Calculate()
   Dim i As Integer
   Application.EnableEvents = False
   Cells.EntireRow.Hidden = False
   For i = 1 To Cells(1, 1).SpecialCells(xlLastCell).Row()
       If Cells(i, 3).Text = "0" and  Cells(i, 4).Text = "0" Then Cells(i, 1).EntireRow.Hidden = True
   Next i
   Application.EnableEvents = True
End Sub
更多追问追答
追问
您好,我的情况是这样的。这个表格的数据是读取另一个表单的。比如:在SHEET1中:C3和D3是为0的,实时地SHEET2中不用手动输入,显示:C3和D3都为0。在SHEET2中我加入您给我的公式,是可以实现隐藏的。
我想在SHEET1中的C3和D3将数据修改为不为0时,SHEET2的数据还是隐藏的,能不能实现地联动,因数据的变化而变化呢?谢谢。
追答
表之间的数据直接关联不就可以了?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式