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
这个是因为任意一个工作簿至少要有一个可见的工作表,不能所有工作表都隐藏,可以通过添加一些条件判断代码来解决。
要实现你的要求,代码是很简单的。但你应发个样表或截图来,因为你在sheet1表输入数据,不知是怎样分配在sheet2和sheet3的。
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