Публичный выпуск
- Ошибка могла произойти, потому что вы не объявили шт
переменная.
- Вы должны включить фильтр в цикл, иначе он будет повторяться
через листы и применить фильтр только к последнему найденному
лист.
- Вы не можете объявить переменную как Public внутри процедуры,
Вы должны использовать Dim (или Static).
Код
Sub PublicIssue1()
Dim WDestination As Workbook
Dim sht As Worksheet
Set WDestination = Worksbooks("Boo1.xls")
For Each sht In WDestination.Worksheets
If sht.Name Like "*-*" Then
With sht.Sort
.SortFields.Add Key:=Range("AK1"), Order:=xlDescending
.SortFields.Add Key:=Range("B1"), Order:=xlAscending
.SetRange Range("A:GB")
.Header = xlYes
.Apply
End With
End If
Next sht
End Sub
Если вы объявляете переменную как Public , она должна быть перед всеми процедурами в модуле.
Public WDestination as Workbook
Sub PublicIssue2()
Dim sht As Worksheet
'Set WDestination = Worksbooks("Boo1.xls") ' If it is not set.
For Each sht In WDestination.Worksheets
If sht.Name Like "*-*" Then
With sht.Sort
.SortFields.Add Key:=Range("AK1"), Order:=xlDescending
.SortFields.Add Key:=Range("B1"), Order:=xlAscending
.SetRange Range("A:GB")
.Header = xlYes
.Apply
End With
End If
Next sht
End Sub