2015-03-25 3 views
3

У меня есть Userform, который открывается автоматически при открытии файла excel. У него есть некоторые проблемы с отображением, поскольку кнопки выбора исчезают при прокрутке формы. эта проблема возникает только тогда, когда у меня есть 2 монитора (основной и вторичный). Я заметил эти два сценария:Показать Excel на основном мониторе

  1. Если я открываю любой файл Excel и делаю его полноэкранным в главном экране, тогда закройте его, а затем откройте пользовательскую форму, он отлично работает!
  2. Если я открою любой файл excel и перевежу его на дополнительный экран, то закройте его и откройте пользовательскую форму, возникает проблема!

Итак, мои вопросы это:

Есть ли способ заставить Excel должен быть открыт в полноэкранном режиме на главном экране?

+0

Я предполагаю, что вы пытались добавить Application.WindowState = xlMaximized в вашем случае открытия, но я понятия не имею, о том, как заставить его быть на одном экране ... – R3uK

+0

Спасибо, см. Полный ответ –

ответ

3

Добавьте это в процедуру события Workbook_Open(), и вы сможете открыть книгу в полноэкранном режиме на основном мониторе.

Private Sub Workbook_Open() 
    Application.Top = 0 
    Application.Left = 0 
    Application.DisplayFullScreen = True 
End Sub 
+0

Спасибо, На самом деле, в случае, если я открою файл Excel и скрою его и переместите его на второй экран, закройте его, откройте снова, он переместит его на главный экран но не полный экран, поэтому я добавил: Application.WindowState = xlMaximized Теперь все работает отлично! –

+0

Можем ли мы это сделать и для UserForm? потому что у меня была проблема несколько раз уже – R3uK

+0

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

0

кажется, что VBA осуществляется размерами последнего открытого файла Excel, габаритами я имею в виду, если это полный экран или нормально отображается и в котором экран. Другая проблема, которая должна быть рассмотрена: если файл Excel был отображен на дополнительном экране, и этот экран больше основного экрана, то Application.Top, Application.Left не сможет успешно получить приложение к главный экран, он должен отображаться как нормальный первый. Мой окончательный код, чтобы решить свои вопросы есть:

Application.Visible = True 
Application.WindowsState=xlNormal 
Application.Width =100 
Application.Height =100 
Application.Top = 0 
Application.Left = 0 
Application.WindowsState =xlMaximized 
With UserForm2 
.Height=Application.Height 
.Width=Application.Width 
End With 
UserForm2.ScrollBars = fmScrollBarsVertical 
UserForm2.KeepScrollBarsVisible = fmScrollBarsVertical 
UserForm2.Zoom = 120 
UserForm2.ScrollHeight = (120 * nq) + 120 
UserForm2.Show vbModeless 
Application.Visible = False 
Смежные вопросы