2015-02-06 29 views
3

我在網上搜索了一段時間,並找到了一些解決方案,但沒有一個能夠幫助我。多個監視器上的中心用戶窗體

我在Excel 2010中有一個用戶窗體,我希望以Excel窗口爲中心。我有雙顯示器,它似乎總是在兩臺顯示器之間。我知道有些屬性可以編輯,比如StartUpPosition等,來控制它去哪裏,但似乎改變這些參數什麼也不做。這是我在網上找到的代碼,許多用戶證明他們爲他們工作。我的表格被命名爲「HighlightForm」

Private Sub HighlightForm_Activate() 

    With HighlightForm 
     .StartUpPosition = 0 
     .Left = Application.Left + (0.5 * Application.Width) - (0.5 * .Width) 
     .Top = Application.Top + (0.5 * Application.Height) - (0.5 * .Height) 
     .Show 
    End With 

End Sub 

但是,這並不會改變我放置表格的地方。它仍然在中心。我甚至嘗試將所有這些參數都改爲零,但無濟於事。我將這段代碼放在UserForm代碼本身中,我知道它是正確的位置。我也嘗試了HighlightForm_Initialize(),它仍然不會響應任何更改。

有什麼明顯的東西我明白了嗎?我不認爲這是一個非常困難的問題,但我真的很難過。預先感謝您的幫助。

+0

刪除'.show'。表格激活將關心顯示它。 – 2015-02-06 18:27:42

回答

0

我發現改變.StartUpPosition = 3(Windows默認),並用你的代碼來改變左上角的點,它集中在Excel窗口中。除非您的Excel超過2個屏幕或用戶窗體寬度/高度大於屏幕,否則用戶窗體不應位於顯示器之間。

0

我發現這個代碼完全爲我工作

Private Sub UserForm_Activate() 
    'Position top/left of Excel App 
    Me.Top = Application.Top 
    Me.Left = Application.Left 

    'Approx over top/left cell (depends on toolbars visible) 
    Me.Top = Application.Top + (Application.UsableHeight/2) 
    Me.Left = Application.Left + (Application.UsableWidth/2) 
End Sub 

要注意的是,你可以調整「/ 2」到中心多一點,因爲它可能會給較小的顯示器不同的感覺(其調整頂部用戶窗體左側的屏幕中心)。我的代碼有2.3