EXCEL表格,通过VBA公式实现自动隐藏功能。
我参考这个公式,但不会修改。
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 · 知道合伙人软件行家
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
这个是因为任意一个工作簿至少要有一个可见的工作表,不能所有工作表都隐藏,可以通过添加一些条件判断代码来解决。
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的数据还是隐藏的,能不能实现地联动,因数据的变化而变化呢?谢谢。
表之间的数据直接关联不就可以了?
广告 您可能关注的内容 |