Имя: Пароль:
IT
 
Список листов в excel
0 Asmody
 
08.03.12
11:40
миста-лучше-гугла, ответь, как получить список названий листов в книге excel на отдельном листе или в другой книге? есть способ без vba?
поясняю, есть книга с >50 листами. Надо сделать кое-какой анализ по ним, но для начала хотя бы список получить
1 ДенисЧ
 
08.03.12
11:50
ексель = СоздатьОбъект("Excel.Application");
книга = ексель.Workbooks.Open(ИмяФайла);
   
Для сч = 1 по книга.Sheets.Count Цикл
   страница = книга.Sheets(сч);
   имя = страница.Name;
 Сообщить("" + );
кОНЕЦцИКЛА;

Не стыдно?
2 Tatitutu
 
08.03.12
11:51
(1)  Сообщить("" + );
а  Сообщить(сч+" " + имя);
3 Asmody
 
08.03.12
12:04
(1) я где-то написал, что мне на 1С надо? мне как-нибудь так: скопировать-вставть
4 Rie
 
08.03.12
12:06
(3) ADO - не предлагать?
5 Rie
 
08.03.12
12:08
6 Tatitutu
 
08.03.12
12:10
(0) Правой кнопкой по ярлычку листа - Переместить - Скопировать
получить полный список всех листов - Анализируй :-)
7 Asmody
 
08.03.12
12:20
может я плохо объяснил? мне надо в одном листе получить список всех остальных листов.
8 КМ155
 
08.03.12
12:31
(7) без VBA сделать это сложно,
на VBA проще всего ADOX
9 Tatitutu
 
08.03.12
12:31
Alt+F11
В открывшемся окне редактора создай новый пустой модуль (меню Insert - Module) и скопируй туда текст этого макроса:

Sub СписокЛистов()
  Dim sheet As Worksheet
  Dim cell As Range
  With ActiveWorkbook
     For Each sheet In ActiveWorkbook.Worksheets
        Set cell = Worksheets(1).Cells(sheet.Index, 1)
        .Worksheets(1).Hyperlinks.Add anchor:=cell, Address:="", SubAddress:="'" & sheet.Name & "'" & "!A1"
        cell.Formula = sheet.Name
     Next
  End With
End Sub

Закрой редактор  и вернитесь  в Excel
Добавь в книгу чистый лист и поместите его на первое место
и запусти макрос СписокЛистов()
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший