2013-03-05 8 views
1

я крюк в книге на открытое мероприятие, как это:Скрыть открытую книгу, прежде чем она видна пользователю

Private WithEvents App As Application ' For handling events 

' Event handler for when THIS workbook is opened. 
Private Sub Workbook_Open() 
    Set App = Application ' Set App variable so we can add event handlers 
    App.EnableEvents = True ' Set raise events = true. 
End Sub 

' Event handler to handle the event when a new workbook is open (ie. when Raven Viewer exports to a new workbook in excel 
Private Sub App_WorkbookOpen(ByVal Wb As Workbook) 
    Wb.Windows(1).Visible = False 
End Sub 

, которая скрывает любые книги, которые открыты в то время как эта таблица открыта ... но для краткого во-вторых, они видны пользователю. Есть ли способ предотвратить это?

Я пытаюсь предотвратить текущую открытую книгу от потери фокуса.

Книга не открыта с помощью VBA.

Спасибо.

+1

'Application.ScreenUpdating = false' внутри' App_WorkbookOpen' может сделать это. –

+0

@JacobYoung это был мой первый порт захода, не работал. Я понимаю, что это, вероятно, потребует мегагака, если я заставлю его работать. – Cheetah

+0

Вы можете найти эту ссылку полезной http://stackoverflow.com/questions/5680061/how-can-i-stop-excel-workbook-flicker-on-automation-open/ – osknows

ответ

0

Использование App_WindowActivate, кажется, работает лучше для меня, но я не уверен:

Private Sub App_WindowActivate(ByVal Wb As Workbook, ByVal Wn As Window) 
If Not Wn Is ThisWorkbook.Windows(1) Then 
    Application.EnableEvents = False 
    Wn.Visible = False 
    ThisWorkbook.Windows(1).Visible = True 
    Application.EnableEvents = True 
End If 
End Sub 
+0

Не повезло, точно такая же проблема испугалась. благодаря – Cheetah

Смежные вопросы