Прошу в помощи, ни как не могу понять каким способом можно получить список имен всех листов из сторонних книг, пересмотрел много макросов но они либо выводят имя файла, либо имена листов активной книги.
Добрый день,
Прошу в помощи, ни как не могу понять каким способом можно получить список имен всех листов из сторонних книг, пересмотрел много макросов но они либо выводят имя файла, либо имена листов активной книги.mss
Макрос взял в сети "ZVI_GetExternalTables", для понимания как обратиться к книге без открытия, понял как считываются имена в массив, и как раз вот этот момент мне не нужен, мне просто надо количество листов.
Макрос взял в сети "ZVI_GetExternalTables", для понимания как обратиться к книге без открытия, понял как считываются имена в массив, и как раз вот этот момент мне не нужен, мне просто надо количество листов.mss
Сам в итоге разобрался. если кому пригодится. Макрос просит указать файл из которого нужно вытянуть названия листов и записывает в столбец.
[vba]
Код
Sub GetFilePath_GetNameList() Dim ws As Worksheet Dim wb As Workbook, sShName As String, n As Integer, i As Integer Dim Array_Var() As String FileName = GetFilePath("Выберите файл") If FileName = "" Then Exit Sub ActiveSheet.Range("A1") = FileName 'записываем путь выбранного файла в ячейку With Application .ScreenUpdating = 0 ' обращение к файлу будет происходить в фоновом режиме .EnableEvents = 0 Set wb = .Workbooks.Open(FileName, False, True) For i = 1 To ActiveWorkbook.Worksheets.Count 'подсчет количества листов в указанном файле ActiveSheet.Cells(2 + i, 14).Value = ActiveWorkbook.Worksheets(i).Name 'запись названий листов по порядку в столбец начиная с 14 в данном случае Next i 'Поиск названий в цикле wb.Close 0 .ScreenUpdating = 1 .EnableEvents = 1 End With End Sub
[/vba]
Сам в итоге разобрался. если кому пригодится. Макрос просит указать файл из которого нужно вытянуть названия листов и записывает в столбец.
[vba]
Код
Sub GetFilePath_GetNameList() Dim ws As Worksheet Dim wb As Workbook, sShName As String, n As Integer, i As Integer Dim Array_Var() As String FileName = GetFilePath("Выберите файл") If FileName = "" Then Exit Sub ActiveSheet.Range("A1") = FileName 'записываем путь выбранного файла в ячейку With Application .ScreenUpdating = 0 ' обращение к файлу будет происходить в фоновом режиме .EnableEvents = 0 Set wb = .Workbooks.Open(FileName, False, True) For i = 1 To ActiveWorkbook.Worksheets.Count 'подсчет количества листов в указанном файле ActiveSheet.Cells(2 + i, 14).Value = ActiveWorkbook.Worksheets(i).Name 'запись названий листов по порядку в столбец начиная с 14 в данном случае Next i 'Поиск названий в цикле wb.Close 0 .ScreenUpdating = 1 .EnableEvents = 1 End With End Sub