VBA установил L oop для указанных c рабочих листов в рабочей книге - PullRequest
0 голосов
/ 17 апреля 2020

Я запускаю ежемесячный отчет, который генерирует 16 вкладок (15 листов: «Отчет1» - «Отчет15»). Я создал подпрограмму для создания / форматирования таблицы и организации данных на Листе 2 («Отчет1»).

Цель: из-за стиля таблицы теперь я хотел бы l oop макрос только через «Report1», «Report4», «Report7», «Report10», «Report13».

(Как только я это выясню, я создам макрос с другим стилем таблицы для других таблиц. )

Проблемы: с помощью «Googling» я создал нижний L oop, но «Set ws = Worksheets (Report1») ws.active сбрасывает его. -Мне нужно удалить набор ws = worksheets (Report1 ")?

-У меня был ws.active, потому что макрос не работал без него.

Макрос:

Option Explicit

Sub LoopThroughSpecificWorksheets()

'Turn Off Screen Updates
Application.ScreenUpdating = False
Application.DisplayAlerts = False

    Dim wb As Workbook: Set wb = ActiveWorkbook
    Dim ws As Worksheet
    Dim LstObj As ListObjects
    Dim LastRow As Long
    Dim Report, i

    Report = Array("Report1", "Report4", "Report7", "Report10", "Report13")

    For i = LBound(Report) To unbound(Report)
        With ws(Report(i))

    Set ws = Worksheets("Report1")
    ws.Activate

'...Body of Maco
'Insert Table
'Remove Table Format
'Apply Tablestyle:
'Apply a filter to $ Share for all Brands (Largest to Smallest)
'Update $ - % Chg formula
'Update Units - % Chg Formula
'Change Header Names and Resize


    End With
Next i

'Turn On Screen Updates
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

End Sub

1 Ответ

1 голос
/ 17 апреля 2020

Ниже приведен код VBA, который зацикливает ваш массив рабочих таблиц:

Sub sLoopArray()
    Dim ws As Worksheet
    Dim aReport As Variant
    Dim lngLoop1 As Long
    aReport = Array("Report1", "Report2")
    For lngLoop1 = LBound(aReport) To UBound(aReport)
        Set ws = Worksheets(aReport(lngLoop1))
        With ws


        End With
    Next lngLoop1
End Sub

Я изменил тип unbound на UBound, объявил счетчик l oop как Long (вы имел вариант, который может вызвать проблемы), а также переименовал массив с Report на aReport (чтобы избежать «столкновения» с любыми встроенными именами VBA.

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...