Страницы: 1
RSS
Открытие книги неактивной
 
Здравствуйте. Подскажите пожалуйста, как открыть книгу через VBA, чтоб она открывалась в фоне, а не становилась активной. Код ниже открывает книгу и делает ее активной. А надо чтобы оставалась открытой в фоне.
Код
WorkBooks.Open("C:\template.xlsx")
 
Код
 Dim WB As Workbook
Set WB = GetObject("C:\template.xlsx")
Изменено: Михаил С. - 10.09.2013 15:13:12
 
Или активировать затем окно "основной" книги.
 
Понятно. Спасибо. Сделал книгу изначально скрытой, теперь при открытии она не мешает. Но в конце макроса мне надо написать код, чтоб сделать ее видимой.
 
а как вы книгу делаете невидимой? Вот и идите от обратного  :D
Учимся сами и помогаем другим...
 
Невидимой сделал вручную и сохранил. А теперь с помощью кода надо сделать видимой.
Пробую так:
Код
WorkBooks("template.xlsx").Visible = true

не получается.
Изменено: VISXAN - 10.09.2013 16:21:08
 
Код
Dim WB As Workbook
Set WB = GetObject("C:\template.xlsx")
'... здесь код
WB.Windows(1).Visible = True
 
Код
Set WB = GetObject("C:\template.xlsx")
этот код открывает книгу скрытой (даже если она такой не является), поэтому от него отказался.
Теперь книгу изначально сделал скрытой и пользуюсь для открытия таким кодом:
Код
Workbooks.Open("C:\template.xlsx")

Далее, после определенной процедуры VBA (заполнения данной книги данными), нужно сделать книгу видимой. Этот код не помогает:
Код
WorkBooks("C:\template.xlsx").Visible = true
Изменено: VISXAN - 10.09.2013 16:31:03
 
Вы сами себя слышите?
Цитата
этот код открывает книгу скрытой ..., поэтому от него отказался.
Поэтому открываю книгу и тут же делаю ее невидимой
Цитата
Далее, после определенной процедуры VBA ...нужно сделать книгу видимой.
:D Мазохисты всех стран - объединяйтесь. А на вопрос ответил Hugo.
Я сам - дурнее всякого примера! ...
 
Т.к. форум тормозит с screenupdating - диалог получается интересным :)
 
KuklP, да не делаю я ее скрытой. Она сама скрытая, куда ее еще скрывать.
В процедуре открываю эту книгу (скрытую), та же процедура забивает ту же книгу (скрытую) данными и теперь необходимо ее отобразить с помощью кода в той же процедуре. Что тут не понятного.
 
Код
Dim WB As Workbook
Set WB = GetObject("C:\template.xlsx")

'... здесь код
 Set WB = Nothing
Windows("template.xlsx").Visible = True
Изменено: Михаил С. - 10.09.2013 16:52:46
 
Михаил С., спасибо Вам большое. Четко и просто.
 
Миша, мож так?

Код
Windows(WB.name).Visible = True
Set WB = Nothing
Я сам - дурнее всякого примера! ...
 
Без разницы. Но так наверно проще.
Главное, что бы книгу сделать "видимой", в любом месте кода после открытия нужно Set WB = Nothing.
Лучше в самом конце, что WB использовать можно было.
Изменено: Михаил С. - 10.09.2013 17:02:47
 
А что делает этот код?
Код
Set WB = Nothing
 
удаляет GetObject.

зы. ежели что - я сам ангелького не понимаю. Пользуюсь переводчиком
Изменено: Михаил С. - 10.09.2013 17:08:35
 
Ах да, ступил. Удаляет присвоенное значение. Ну или присваивает ничего))
Изменено: VISXAN - 10.09.2013 17:30:37
 
подскажите пожалуйста как сделать чтобы не моргало на
Код
Set WB = GetObject("C:\template.xlsx")
'.......

Windows(WB.name).Visible = True ' <-- вот тут моргает
WB.Close True
Application.ScreenUpdating = False - не помогает
Изменено: Максим - 09.04.2019 22:01:33
 
пока решил так:
Код
Set EXapp = New Application
EXapp.Visible = False
Set WB = EXapp.Workbooks.Open("C:\template.xlsx")
'.........
WB.Close True
Set EXapp = Nothing

но что-то кажется что слишком тяжёлая артиллерия
Изменено: Максим - 09.04.2019 20:42:55
Страницы: 1
Читают тему
Наверх