Добрый день.
Есть 4 макроса:
clean - очистка пустых строк
filter - применение фильтра
format - приведение в более менее читабельный формат
process - выполнение первых трех макросов
И есть около 20 листов. Как сделать выполнение через хитрый оператор n+1 для выбора листов последовательно и выполнения макросов?
Т.е. выбрали лист 1 - шлепнули 3 макроса, перешли ко 2му листу - снова 3 макроса и так до конца?
Код |
---|
Sub clean()
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft
Columns("G:G").Select
Selection.Delete Shift:=xlToLeft
Rows("2:2").Select
Selection.Delete Shift:=xlUp
LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For r = LastRow To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub
Sub filter()
Range("A1:F1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$F$1000").AutoFilter Field:=1, Criteria1:=Array("5", _
"¨ìêîñòü", "Çäîðîâüå", "Èìÿ Êîìïüþòåðà", "Ëîãè÷åñêèé Äèñê", "Ìîäåëü Ƹñòêîãî Äèñêà" _
, "Íîìåð Æ¸ñòêîãî Äèñêà", "Ïðèáëèçèòåëüíî îñòàëîñü", "Ïðîèçâîäèòåëüíîñòü", _
"Ñåðèéíûé Íîìåð Äèñêà"), Operator:=xlFilterValues
Columns("A:A").ColumnWidth = 25
End Sub
Sub format() '
Columns("B:B").ColumnWidth = 30
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Columns("D:D").ColumnWidth = 7
Columns("E:E").ColumnWidth = 5
Cells.Select
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub
Sub process()
Sheets("1").Select
clean
filter
format
Sheets("2").Select
clean
filter
format
End Sub
|