|
Вопрос о корректном закрытии XLS файлов кодом VBA !
|
|||
---|---|---|---|
#18+
Всем добрый день! Вопрос о корректном закрытии XLS файлов кодом VBA. Есть определенные трудности в корректном закрытии XLSX файлов средствами VBA, если ранее вручную были открыты другие XLSX-файлы. Например: Из формы файла QWE.xlsxm кодом VBA открываю файл: Test1.xlsx, выполняю в нем кодом необходимые действия, сохраняю без закрытия файла. Закрываю кодом управляющую форму и сам файл QWE.xlxm без сохранения. Все корректно работает, если до открытия QWE.xlxm НЕ БЫЛИ открыты другие файлы XLS. А так происходит следующее - я в итоге вижу только один открытый файл Test1.xlsx, а ранее открытые ранее файлы XLS не видны и на них не возможно переключиться. Хотя на самом деле ранее открытые файлы есть и когда закрываешь приложение Excel, то запрашивается - сохранять их или нет. Подскажите пожалуйста, что происходит? как избавиться от такого эффекта? Нужно, чтобы когда код VBA закрывал форму и им открытые файлы - и на ранее открытые файлы можно было переключаться, как это обычно и происходит. Для закрытия использую: Windows("Test.xlsm").Activate UserForm1.Hide ActiveWorkbook.Close True ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 16:14 |
|
Вопрос о корректном закрытии XLS файлов кодом VBA !
|
|||
---|---|---|---|
#18+
Yuri KR Вопрос о корректном закрытии XLS файлов кодом VBA. При открытии надо сохранять ссылку на объект открытой книги. И закрывать через него. Тогда эти действия не затронут другие открытые книги. Код: vbnet 1. 2. 3. 4.
Yuri KR а ранее открытые ранее файлы XLS не видны и на них не возможно переключиться. Значит, они открыты в другом экземпляре хост-процесса Excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 16:29 |
|
Вопрос о корректном закрытии XLS файлов кодом VBA !
|
|||
---|---|---|---|
#18+
файлы открываю как и написано через SET WB1= workbooks.open("D:\folder\Test1.xlsx") и использую set wb1 = nothing {ранее открытые ранее файлы XLS не видны и на них не возможно переключиться.} Значит, они открыты в другом экземпляре хост-процесса Excel. Yuri KR - согласен Выяснил следующее, эта коллизия возникает сразу после ручного открытия только файла QWE.XLSM с авто-открытием формы Form1. Private Sub Workbook_Open() Application.Visible = False Call UserForm1.Show End Sub Уже после этого в панели задач при наведении на пиктограмму Excel виден только файл QWE.XLSM, другие файлы исчезают. Что при ручном открытии файла QWE.XLSM тоже его нужно как-то открывать через SET ? Из Form1 потом открывается WB1= workbooks.open("D:\folder\Test1.xlsx") Но как оказалось коллизия с видимостью файлов возникает сразу. Если они в другом экземпляре хост-процесса Excel, то почему после закрытия QWE.XLSM со всеми nothing не удаляет другой процесс и не возвращает видимость первого. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 17:57 |
|
Вопрос о корректном закрытии XLS файлов кодом VBA !
|
|||
---|---|---|---|
#18+
Yuri KR файлы открываю как и написано через SET WB1= workbooks.open("D:\folder\Test1.xlsx") и использую set wb1 = nothing {ранее открытые ранее файлы XLS не видны и на них не возможно переключиться.} Значит, они открыты в другом экземпляре хост-процесса Excel. Yuri KR - согласен ... на каком основании "согласен"? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 17:59 |
|
Вопрос о корректном закрытии XLS файлов кодом VBA !
|
|||
---|---|---|---|
#18+
Yuri KR ... закрытия QWE.XLSM со всеми nothing не удаляет другой процесс и не возвращает видимость первого. на каком основании вы ожидаете, что это вообще должно произойти, независимо от того, есть "другой" процесс или нет. Что вы для этого сделали? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 18:01 |
|
Вопрос о корректном закрытии XLS файлов кодом VBA !
|
|||
---|---|---|---|
#18+
что сделал? закрыл файлы, которые открыл программно. удалил ссылки на них. закрыл форму и файл из которого запускался Vba код. а что вы предполагаете нужно сделать и как? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 21:33 |
|
Вопрос о корректном закрытии XLS файлов кодом VBA !
|
|||
---|---|---|---|
#18+
вот ведь лять. прямо сегодня в соседнем форуме мне некий товарищ объяснял, что код он "просто так" написал... Yuri KR файлы открываю как и написано через SET WB1= workbooks.open("D:\folder\Test1.xlsx") Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 22:00 |
|
Вопрос о корректном закрытии XLS файлов кодом VBA !
|
|||
---|---|---|---|
#18+
утром проверю, код представлен частично, но там есть и Application.Visible = True ' <-- ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 22:26 |
|
|
Start [/forum/topic.php?fid=61&tid=2171720]: |
0ms |
get settings: |
26ms |
get forum list: |
9ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
88ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
375ms |
get tp. blocked users: |
2ms |
others: | 144ms |
total: | 676ms |
0 / 0 |