Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Список листов сторонних книг - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Список листов сторонних книг
mss Дата: Суббота, 22.09.2018, 09:54 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 81
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день,

Прошу в помощи, ни как не могу понять каким способом можно получить список имен всех листов из сторонних книг, пересмотрел много макросов но они либо выводят имя файла, либо имена листов активной книги.
 
Ответить
СообщениеДобрый день,

Прошу в помощи, ни как не могу понять каким способом можно получить список имен всех листов из сторонних книг, пересмотрел много макросов но они либо выводят имя файла, либо имена листов активной книги.

Автор - mss
Дата добавления - 22.09.2018 в 09:54
krosav4ig Дата: Суббота, 22.09.2018, 11:04 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Добрый день
Посмотрите эту тему


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеДобрый день
Посмотрите эту тему

Автор - krosav4ig
Дата добавления - 22.09.2018 в 11:04
mss Дата: Суббота, 22.09.2018, 11:14 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 81
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо, но не то, сейчас изучаю один макрос, попытаюсь под себя переделать.
 
Ответить
СообщениеСпасибо, но не то, сейчас изучаю один макрос, попытаюсь под себя переделать.

Автор - mss
Дата добавления - 22.09.2018 в 11:14
mss Дата: Суббота, 22.09.2018, 12:03 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 81
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Хотелось бы уточнить, а как получить просто количество листов в сторонней книге, без имен?
 
Ответить
СообщениеХотелось бы уточнить, а как получить просто количество листов в сторонней книге, без имен?

Автор - mss
Дата добавления - 22.09.2018 в 12:03
Pelena Дата: Суббота, 22.09.2018, 12:17 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
Вы же как-то обращаетесь к "сторонней" книге? Через переменную или через ActiveWorkbook?
Кол-во листов будет [vba]
Код
ActiveWorkbook.Sheets.Count
[/vba]
Перебрать все листы можно, например, циклом
[vba]
Код
For Each sh In ActiveWorkbook.Sheets
...
Next sh
[/vba]где sh - это переменная WorkSheet

Покажите макрос, разговор будет более предметный


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВы же как-то обращаетесь к "сторонней" книге? Через переменную или через ActiveWorkbook?
Кол-во листов будет [vba]
Код
ActiveWorkbook.Sheets.Count
[/vba]
Перебрать все листы можно, например, циклом
[vba]
Код
For Each sh In ActiveWorkbook.Sheets
...
Next sh
[/vba]где sh - это переменная WorkSheet

Покажите макрос, разговор будет более предметный

Автор - Pelena
Дата добавления - 22.09.2018 в 12:17
mss Дата: Суббота, 22.09.2018, 12:24 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 81
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Макрос взял в сети "ZVI_GetExternalTables", для понимания как обратиться к книге без открытия, понял как считываются имена в массив, и как раз вот этот момент мне не нужен, мне просто надо количество листов.
К сообщению приложен файл: ZVI_GetExternal.xls (47.5 Kb)
 
Ответить
СообщениеМакрос взял в сети "ZVI_GetExternalTables", для понимания как обратиться к книге без открытия, понял как считываются имена в массив, и как раз вот этот момент мне не нужен, мне просто надо количество листов.

Автор - mss
Дата добавления - 22.09.2018 в 12:24
Pelena Дата: Суббота, 22.09.2018, 12:59 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
В этом макросе количество листов - переменная [vba]
Код
rs=.RecordCount
[/vba]
Сами имена сохранены в массиве arr


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВ этом макросе количество листов - переменная [vba]
Код
rs=.RecordCount
[/vba]
Сами имена сохранены в массиве arr

Автор - Pelena
Дата добавления - 22.09.2018 в 12:59
mss Дата: Суббота, 22.09.2018, 13:00 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 81
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Это я понял, не совсем понимаю как изменить, часть вывода на лист, что бы не выводил имена листов, а просто в одну ячейку количество.
 
Ответить
СообщениеЭто я понял, не совсем понимаю как изменить, часть вывода на лист, что бы не выводил имена листов, а просто в одну ячейку количество.

Автор - mss
Дата добавления - 22.09.2018 в 13:00
Pelena Дата: Суббота, 22.09.2018, 13:03 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
Закомментируйте
[vba]
Код
  With Range("A1:B1")
    .CurrentRegion.Resize(, 2).ClearContents
    .Value = Array("Tables", FileName)
    .Resize(rs).Offset(1, 0).Value = Arr
  End With
[/vba]
и напишите [vba]
Код
Range("A2")=rs
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗакомментируйте
[vba]
Код
  With Range("A1:B1")
    .CurrentRegion.Resize(, 2).ClearContents
    .Value = Array("Tables", FileName)
    .Resize(rs).Offset(1, 0).Value = Arr
  End With
[/vba]
и напишите [vba]
Код
Range("A2")=rs
[/vba]

Автор - Pelena
Дата добавления - 22.09.2018 в 13:03
mss Дата: Суббота, 22.09.2018, 13:04 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 81
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо огромное, только сам дошел до этого через Cells....
 
Ответить
СообщениеСпасибо огромное, только сам дошел до этого через Cells....

Автор - mss
Дата добавления - 22.09.2018 в 13:04
skanchik Дата: Четверг, 15.11.2018, 18:53 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Всем привет,
В продолжении темы, а как сделать чтобы в столбец писался таки список листов?
и почему может ругаться на строчку
[vba]
Код
With New ADODB.Connection
[/vba]?
 
Ответить
СообщениеВсем привет,
В продолжении темы, а как сделать чтобы в столбец писался таки список листов?
и почему может ругаться на строчку
[vba]
Код
With New ADODB.Connection
[/vba]?

Автор - skanchik
Дата добавления - 15.11.2018 в 18:53
skanchik Дата: Среда, 21.11.2018, 13:59 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Сам в итоге разобрался. если кому пригодится.
Макрос просит указать файл из которого нужно вытянуть названия листов и записывает в столбец.

[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
[/vba]

Автор - skanchik
Дата добавления - 21.11.2018 в 13:59
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!