Есть, к примеру, два варианта программы сброса всех фильтров на всех листах активной книги с разными организациями цикла.
Sub Reset_All_Filters_v1_1() ' стандартная запись цикла "For ... To ... [Step ...]" РАБОТАЕТ
Dim i%
On Error Resume Next
For i = 1 To Sheets.Count
Sheets(i).ShowAllData
Next
End Sub
Sub Reset_All_Filters_v2_1() ' стандартная запись цикла "For Each ... In ..." РАБОТАЕТ
Dim wsSh As Worksheet
On Error Resume Next
For Each wsSh In Sheets
If wsSh.AutoFilterMode Then wsSh.ShowAllData
Next
End Sub
' Пытаюсь перейти к записи циклов в одну строку :
Sub Reset_All_Filters_v1_2() ' запись цикла "For ... To ... [Step ...]" в одну строку - РАБОТАЕТ
Dim i%
On Error Resume Next
For i = 1 To Sheets.Count: Sheets(i).ShowAllData: Next
End Sub
Sub Reset_All_Filters_v2_2() ' запись цикла "For Each ... In ..." в одну строку НЕ РАБОТАЕТ. Компилятор ругается на Next без For.
Dim wsSh As Worksheet
On Error Resume Next
For Each wsSh In Sheets: If wsSh.AutoFilterMode Then wsSh.ShowAllData: Next
End Sub
Ничего не понимаю!
Sub Reset_All_Filters_v1_1() ' стандартная запись цикла "For ... To ... [Step ...]" РАБОТАЕТ
Dim i%
On Error Resume Next
For i = 1 To Sheets.Count
Sheets(i).ShowAllData
Next
End Sub
Sub Reset_All_Filters_v2_1() ' стандартная запись цикла "For Each ... In ..." РАБОТАЕТ
Dim wsSh As Worksheet
On Error Resume Next
For Each wsSh In Sheets
If wsSh.AutoFilterMode Then wsSh.ShowAllData
Next
End Sub
' Пытаюсь перейти к записи циклов в одну строку :
Sub Reset_All_Filters_v1_2() ' запись цикла "For ... To ... [Step ...]" в одну строку - РАБОТАЕТ
Dim i%
On Error Resume Next
For i = 1 To Sheets.Count: Sheets(i).ShowAllData: Next
End Sub
Sub Reset_All_Filters_v2_2() ' запись цикла "For Each ... In ..." в одну строку НЕ РАБОТАЕТ. Компилятор ругается на Next без For.
Dim wsSh As Worksheet
On Error Resume Next
For Each wsSh In Sheets: If wsSh.AutoFilterMode Then wsSh.ShowAllData: Next
End Sub
Ничего не понимаю!