У меня есть макрос с логикой цикла, который я скопировал с другой страницы поддержки stackoverflow/ms, но он, похоже, не работает.VBA issue - цикл через каждый рабочий стол
У меня нет опыта работы с VBA, поэтому у меня возникли проблемы с выяснением причин, почему «цикл через все листы» не работает.
Может ли кто-нибудь взглянуть на мой код и рассказать мне, как его можно исправить?
Sub HideEmptyRows()
Dim rngName As Range
Dim cell As Range
Dim ws_count As Integer
Dim i As Integer
ws_count = ActiveWorkbook.Worksheets.Count
For i = 1 To ws_count
Application.ScreenUpdating = False
For Each Current In Worksheets
' This code hides the adv and group merch rows
For Each cell In Range("eq29", "eq51")
If cell.Value = 0 Then
cell.EntireRow.Hidden = True
Else
cell.EntireRow.Hidden = False
End If
Next cell
' This code hides the consulting rows
For Each cell In Range("eq61", "eq172")
If cell.Value = 0 Then
cell.EntireRow.Hidden = True
Else
cell.EntireRow.Hidden = False
End If
Next cell
Next
Application.ScreenUpdating = True
Next i
End Sub
Мне нравится идея бросать в С током после для каждой текущей строки, а затем периода до диапазона в каждом из For Каждая клеточная линия и End With после последней ячейки Next. Если нет веской причины (т. Е. Тесты разные или будут), почему бы вам не объединить диапазоны/ячейки? –