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

Вход

Регистрация

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

 

= Мир MS Excel/Открыть книгу если закрыта и активировать если открыта - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Открыть книгу если закрыта и активировать если открыта (Макросы/Sub)
Открыть книгу если закрыта и активировать если открыта
dmtgrs Дата: Понедельник, 15.02.2021, 12:39 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Добрый день.
Есть главный файл Exсel (основной) и много файлов Excel (второстепенные) которые лежат в той же папке. Как сделать так, чтобы макрос в главном файле проверял отрыт ли второстепенный файл, если открыт, то просто активировать его, а если закрыт то открыть.
 
Ответить
СообщениеДобрый день.
Есть главный файл Exсel (основной) и много файлов Excel (второстепенные) которые лежат в той же папке. Как сделать так, чтобы макрос в главном файле проверял отрыт ли второстепенный файл, если открыт, то просто активировать его, а если закрыт то открыть.

Автор - dmtgrs
Дата добавления - 15.02.2021 в 12:39
Nic70y Дата: Понедельник, 15.02.2021, 13:02 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8709
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
    On Error Resume Next
    Windows("Êíèãà1.xls").Activate
    Workbooks.Open Filename:="D:\Êíèãà1.xls"
[/vba]


ЮMoney 41001841029809
 
Ответить
Сообщение[vba]
Код
    On Error Resume Next
    Windows("Êíèãà1.xls").Activate
    Workbooks.Open Filename:="D:\Êíèãà1.xls"
[/vba]

Автор - Nic70y
Дата добавления - 15.02.2021 в 13:02
Апострофф Дата: Понедельник, 15.02.2021, 13:13 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 444
Репутация: 122 ±
Замечаний: 0% ±

Excel 1997
[vba]
Код
    On Error Resume Next
    Windows("Êíèãà1.xls").Activate
    Workbooks.Open Filename:="D:\Êíèãà1.xls"
[/vba]

Может так?
[vba]
Код
    On Error Resume Next
    Windows("Êíèãà1.xls").Activate
    IF ERR THEN Workbooks.Open Filename:="D:\Êíèãà1.xls"
[/vba]
Чтоб окно о повторном открытии не выскочило.
 
Ответить
Сообщение
[vba]
Код
    On Error Resume Next
    Windows("Êíèãà1.xls").Activate
    Workbooks.Open Filename:="D:\Êíèãà1.xls"
[/vba]

Может так?
[vba]
Код
    On Error Resume Next
    Windows("Êíèãà1.xls").Activate
    IF ERR THEN Workbooks.Open Filename:="D:\Êíèãà1.xls"
[/vba]
Чтоб окно о повторном открытии не выскочило.

Автор - Апострофф
Дата добавления - 15.02.2021 в 13:13
Nic70y Дата: Понедельник, 15.02.2021, 13:48 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 8709
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
Цитата Апострофф, 15.02.2021 в 13:13, в сообщении № 3 ()
не выскочило
у меня не выскакивает


ЮMoney 41001841029809
 
Ответить
Сообщение
Цитата Апострофф, 15.02.2021 в 13:13, в сообщении № 3 ()
не выскочило
у меня не выскакивает

Автор - Nic70y
Дата добавления - 15.02.2021 в 13:48
dmtgrs Дата: Понедельник, 15.02.2021, 16:29 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Огромное всем спасисбо! Работает!
 
Ответить
СообщениеОгромное всем спасисбо! Работает!

Автор - dmtgrs
Дата добавления - 15.02.2021 в 16:29
RAN Дата: Понедельник, 15.02.2021, 17:05 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
у меня не выскакивает

Но и заскакивает не открытая книга, а ее сохраненный экземпляр.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
у меня не выскакивает

Но и заскакивает не открытая книга, а ее сохраненный экземпляр.

Автор - RAN
Дата добавления - 15.02.2021 в 17:05
Nic70y Дата: Понедельник, 15.02.2021, 19:35 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 8709
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
Где это написано?


ЮMoney 41001841029809
 
Ответить
СообщениеГде это написано?

Автор - Nic70y
Дата добавления - 15.02.2021 в 19:35
RAN Дата: Понедельник, 15.02.2021, 19:45 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Workbooks.Open Filename:="D:\Êíèãà1.xls"

книга открывается не зависимо от того, открыта она, или нет, а вот тут
Цитата Апострофф, 15.02.2021 в 13:13, в сообщении № 3 ()
 IF ERR THEN Workbooks.Open Filename:="D:\Êíèãà1.xls"

только при наличии ошибки (книга закрыта)

И попутно
в отличие от
[vba]
Код
Workbooks("Êíèãà1.xls").Activate
[/vba]
[vba]
Код
Windows("Êíèãà1.xls").Activate
[/vba]
выдаст ошибку, если книга открыта более, чем в одном окне. (Вид >> Новое окно)


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Понедельник, 15.02.2021, 19:54
 
Ответить
Сообщение
Workbooks.Open Filename:="D:\Êíèãà1.xls"

книга открывается не зависимо от того, открыта она, или нет, а вот тут
Цитата Апострофф, 15.02.2021 в 13:13, в сообщении № 3 ()
 IF ERR THEN Workbooks.Open Filename:="D:\Êíèãà1.xls"

только при наличии ошибки (книга закрыта)

И попутно
в отличие от
[vba]
Код
Workbooks("Êíèãà1.xls").Activate
[/vba]
[vba]
Код
Windows("Êíèãà1.xls").Activate
[/vba]
выдаст ошибку, если книга открыта более, чем в одном окне. (Вид >> Новое окно)

Автор - RAN
Дата добавления - 15.02.2021 в 19:45
probkinfeda Дата: Среда, 17.02.2021, 07:34 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 5 ±
Замечаний: 0% ±

Мне кажется что лучше будет так и никаких ошибок
[vba]
Код

Sub fdsg()
Dim XX As Workbook, ImaKnigi$
ImaKnigi$ = "Kniga1.xls"
For Each XX In Workbooks
If XX.Name = ImaKnigi Then XX.Activate: Exit Sub
Next XX
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & ImaKnigi
End Sub
[/vba]
 
Ответить
СообщениеМне кажется что лучше будет так и никаких ошибок
[vba]
Код

Sub fdsg()
Dim XX As Workbook, ImaKnigi$
ImaKnigi$ = "Kniga1.xls"
For Each XX In Workbooks
If XX.Name = ImaKnigi Then XX.Activate: Exit Sub
Next XX
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & ImaKnigi
End Sub
[/vba]

Автор - probkinfeda
Дата добавления - 17.02.2021 в 07:34
китин Дата: Среда, 17.02.2021, 08:29 | Сообщение № 10
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
probkinfeda, - Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеprobkinfeda, - Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)

Автор - китин
Дата добавления - 17.02.2021 в 08:29
dmtgrs Дата: Четверг, 18.02.2021, 10:43 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Цитата Апострофф, 15.02.2021 в 13:13, в сообщении № 3 ()
Может так?

[vba]
Код
On Error Resume Next
Windows("Êíèãà1.xls").Activate
IF ERR THEN Workbooks.Open Filename:="D:\Êíèãà1.xls"
[/vba]

Чтоб окно о повторном открытии не выскочило.


Макрос прекрасно работает! Огромное спасибо! В 2019 офисе все работает как часы! Но вот в 2010 офисе если открыть основной файл, из него открыть с помощью макроса второстепенный файл, во второстепенном файле внести какие то изменения, но еще не сохранить, то при работе макроса excel начинает ругаться, что второстепенный файл уже открыт и предупреждает, что если нажать "ОК" все несохранившиеся изменения потеряются. 2019 офис просто активирует второстепенный файл, тк он уже открыт, а 2010 офис посему то не активирует его, а пытается открыть заново
 
Ответить
Сообщение
Цитата Апострофф, 15.02.2021 в 13:13, в сообщении № 3 ()
Может так?

[vba]
Код
On Error Resume Next
Windows("Êíèãà1.xls").Activate
IF ERR THEN Workbooks.Open Filename:="D:\Êíèãà1.xls"
[/vba]

Чтоб окно о повторном открытии не выскочило.


Макрос прекрасно работает! Огромное спасибо! В 2019 офисе все работает как часы! Но вот в 2010 офисе если открыть основной файл, из него открыть с помощью макроса второстепенный файл, во второстепенном файле внести какие то изменения, но еще не сохранить, то при работе макроса excel начинает ругаться, что второстепенный файл уже открыт и предупреждает, что если нажать "ОК" все несохранившиеся изменения потеряются. 2019 офис просто активирует второстепенный файл, тк он уже открыт, а 2010 офис посему то не активирует его, а пытается открыть заново

Автор - dmtgrs
Дата добавления - 18.02.2021 в 10:43
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Открыть книгу если закрыта и активировать если открыта (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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