2015-07-30 3 views
2

У меня есть 3 поля ввода, которые при выборе документа открывают документ и заполняют поле выбора. С Excel 2013 эти окна открываются перед документом и должны быть сведены к минимуму, чтобы выбрать следующий. Есть ли способ автоматически открыть документы в фоновом режиме?Сделать окно открытым в фоновом режиме

Workbooks.Open (file_path) 
If Application.Version >= 15# Then 
    ActiveWindow.WindowState = xlMinimized 
End If 

Это то, что я в настоящее время, однако я предпочел бы его открытым в фоновом режиме, в первую очередь за того, чтобы свести его к минимуму. Я попытался отключить обновление экрана для части, однако это не сработало.

Application.ScreenUpdating = False 
    Workbooks.Open (file_path) 
Application.ScreenUpdating = True 

Влияет WorkBooks.open в Excel 2013Application.ScreenUpdating?

+1

http://stackoverflow.com/questions/579797/open-excel-file-for-reading-with-vba-without-display –

+0

Форма я использую Excel, так что будет быть несколькими окнами Excel одновременно, как только пользователь выберет первый документ. – Jblo1108

+0

В этой ссылке есть много предложений. Вы прошли через все и не понравилось даже одно предложение :)? –

ответ

0

Application.ScreenUpdating не будет работать с Excel 2013.

Вы можете попробовать создать функцию:

Sub myScreenUpdate(screenUpdateRequest As Boolean, previousScreenUpdate As Boolean) 
    If screenUpdateRequest Then 
     Application.ScreenUpdating = previousScreenUpdate 
    Else 
     previousScreenUpdate = Application.ScreenUpdating 
     Application.ScreenUpdating = False 
    End If 
End Sub 

вызова REQ:

  1. Вызов myScreenUpdate (False, previousScreenUpdate)
  2. Вызов myScreenUpdate (True, previousScreenUpdate)

    Dim previousScreenUpdate as boolean 
    Call myScreenUpdate(False, previousScreenUpdate) 'to get the current setting into previousScreenUpdate 
    Call myScreenUpdate(True, false) 'to set updating to false 
    'do your heavy code here and when finished: 
    Call myScreenUpdate(True, previousScreenUpdate)