我想在工作簿的以下标签中隐藏第16和17行:
必须有一种更好,更有效的方式来编写此代码:
Sub Macro1()
Sheet6.Rows("16:17").Hidden = True
Sheet7.Rows("16:17").Hidden = True
Sheet8.Rows("16:17").Hidden = True
End Sub
此代码运行时,其花费的时间比我想象的要长。
任何帮助将不胜感激。
答案 0 :(得分:2)
有几种方法;我想到的是将它们添加到字典中,并使用For Each
遍历字典。
答案 1 :(得分:1)
使用工作表数组...
Dim ws As Worksheet
For Each ws In Worksheets(Array("Sheet6", "Sheet7", "Sheet8"))
ws.Rows("16:17").Hidden = True
Next
答案 2 :(得分:1)
Sub HideRows()
Dim arr As Variant
Dim i As Integer
arr = Array(Sheet6, Sheet7, Sheet8)
For i = LBound(arr) To UBound(arr)
arr(i).Rows("16:17").Hidden = True
Next
End Sub
Sub ShowRows()
Dim arr As Variant
Dim i As Integer
arr = Array(Sheet6, Sheet7, Sheet8)
For i = LBound(arr) To UBound(arr)
arr(i).Rows.Hidden = False
Next
End Sub
Sub ToggleRows()
Dim arr As Variant
Dim i As Integer
arr = Array(Sheet6, Sheet7, Sheet8)
For i = LBound(arr) To UBound(arr)
arr(i).Rows("16:17").Hidden = Not arr(i).Rows("16:17").Hidden
Next
End Sub
感谢:
ProfoundlyOblivious深刻地建议并提供了“切换”版本。
GMalc提供了使用数组的另一种方法(我从未见过)的想法。