Таблицы подсчета VBA и имена справочных листов

У меня есть несколько рабочих листов, содержащих данные за месяц, и я хотел бы создать сводный рабочий лист, включающий данные со всех рабочих листов. Как я могу запрограммировать VBA для подсчета количества листов и создания таблицы на новом листе, строки которого ограничены количеством листов? Кроме того, имена рабочих листов затем будут заполнять первый столбец таблицы.

Например, у меня есть следующие рабочие листы: январь, февраль, март и апрель. Макрос распознает, что у меня есть только 4 листа, и создает таблицу на новом листе с таким количеством строк. Первый столбец в каждой строке заполнен соответственно январь, февраль, март и апрель.

Учитывая, что листы различаются по количеству и названию каждый месяц, я не уверен, как это зафиксировать.


person Nat Aes    schedule 16.01.2014    source источник


Ответы (1)


попробуйте этот код:

 Sub test()
    Dim summarySh As Worksheet
    Dim sh As Worksheet
    Dim i As Integer

    'add new sheet at the end'
    Set summarySh = Worksheets.Add(After:=Worksheets(Worksheets.Count))
    'rename it'
    summarySh.Name = "Summary"

    i = 1
    'loop through all sheets'
    For Each sh In Worksheets
        'if sh is not summary sheet, then'
        If sh.Name <> summarySh.Name Then
            'write sheet name in summary sheet column A'
            summarySh.Range("A" & i) = sh.Name
            i = i + 1
        End If
    Next
End Sub
person Dmitry Pavliv    schedule 16.01.2014