powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как перебрать все книги Эксель?
10 сообщений из 10, страница 1 из 1
Как перебрать все книги Эксель?
    #37110771
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу сделать скриптик для сохранения всех открытых Эксель-книг. Не получается.
Код: plaintext
1.
2.
3.
4.
5.
set Excel = CreateObject("Excel.Application")
WScript.Echo Excel.Workbooks.Count
    For Each wb In Excel.Workbooks
        wb.Save
    Next
...
Рейтинг: 0 / 0
Как перебрать все книги Эксель?
    #37110806
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fixin,

Вы хотите открытые книги перебрать ?
...
Рейтинг: 0 / 0
Как перебрать все книги Эксель?
    #37110813
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
продолжу :)

тогда надо их открыть..
...
Рейтинг: 0 / 0
Как перебрать все книги Эксель?
    #37110856
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хотите из сторонней программы перебрать УЖЕ открытые книги, то надо обращаться к уже запущенному приложению Excel, а не создавать новое:
Код: plaintext
1.
2.
3.
set Excel = GetObject(,"Excel.Application")
For Each wb In Excel.Workbooks
     wb.Save
Next
...
Рейтинг: 0 / 0
Как перебрать все книги Эксель?
    #37112079
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_PristЕсли хотите из сторонней программы перебрать УЖЕ открытые книги, то надо обращаться к уже запущенному приложению Excel, а не создавать новое:
Код: plaintext
1.
2.
3.
set Excel = GetObject(,"Excel.Application")
For Each wb In Excel.Workbooks
     wb.Save
Next


Да, уже открытые.
А вы уверены, что я получу существующее приложение? Ведь их может быть открыто несколько?
...
Рейтинг: 0 / 0
Как перебрать все книги Эксель?
    #37112103
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя как ни странно, но работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
'set Excel = CreateObject("Excel.Application")
set Excel = GetObject(,"Excel.Application")
ResName = "Saved:"
    For Each wb In Excel.Workbooks
	ResName = ResName & chr( 13 ) & chr( 10 ) & wb.Name 
        wb.Save
    Next

WScript.Echo ResName
...
Рейтинг: 0 / 0
Как перебрать все книги Эксель?
    #37112104
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fixin,

а попробовать религия не позволяет? Мой метод по крайней мере точно ОТКРЫТОЕ приложение получает. А Ваш метод - точно создает новое и ни одной книги, уже открытой - Вы через него не получите. Если у Вас несколько приложений открыто - тогда не знаю как Вам все перебрать, кроме как не через API окна опрашивать.
...
Рейтинг: 0 / 0
Как перебрать все книги Эксель?
    #37112170
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fixin,

конечно работает, вместо того чтобы сохранять книги в новом Excel, вы теперь сохраняете их в текущем.
Но у вас все равно будет проблема, если запущено несколько копий Excel.
...
Рейтинг: 0 / 0
Как перебрать все книги Эксель?
    #37112620
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeFixin,

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

Нет, оно конечно работает. Но как быть если открыто несколько приложений Экселя, не знаю.
...
Рейтинг: 0 / 0
Как перебрать все книги Эксель?
    #37112626
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как перебрать все книги Эксель?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]