2011-11-30 67 views
0

我需要將圖表放置在Excel工作表的正中,用戶正在查看的位置。 顯然,0是紙張座標系X軸上的最開始,而當我們向右移動時,X增加。例如,用戶可能正在查看J到Z列,並且我需要用戶正在查看的工作表中的哪個位置的座標,因此我可以將圖表放在他的正前方。如何獲取Excel工作表中當前視圖端口的座標?

如何獲取表單相對於工作表座標系的「查看端口」座標? 有沒有其他更簡單的方法把圖表放在那裏?

謝謝。

回答

4

你可以嘗試像

Sub test() 
    MsgBox Application.ActiveWindow.ActivePane.VisibleRange.AddressLocal 
End Sub 

在我的情況下,它會打開與內容$A$271:$X$312 我希望這有助於你走出MSGBOX。

編輯:

好吧,試着用XY座標圖出來,並得到了以下內容:

Sub TestPixel() 
    With Range(ActiveWindow.ActivePane.VisibleRange.AddressLocal) 
     Debug.Print .Left, .Top 
     Debug.Print .Left + .Width, .Top + .Height 
    End With 
End Sub 

打印出左上角X/Y座標,右下角的X/Y座標

編輯:NO2

剛生了幾分鐘,完成你的任務我testworkbook。 這裏是makro:

Sub PositionDiagramm() 
    Dim x As Integer 
    Dim y As Integer 

    Dim height As Integer 
    Dim width As Integer 

    With Range(ActiveWindow.ActivePane.VisibleRange.AddressLocal) 
     x = .Left 
     y = .Top 
     width = .Width 
     height = .Height 
    End With 

    With ActiveSheet.Shapes("Diagramm 1") 
    .Top = y + ((height - .Height)/2) 
    .Left = x + ((width - .Width)/2) 
    End With 
End Sub 
+0

讓我走近1步,謝謝。但是我需要可見範圍的座標 - 以像素爲單位,因爲圖表需要屏幕座標。對此有何想法? – TheAgent

+0

不錯的一個。對您的代碼進行一些評論。首先,你應該使用'Dim x as Integer,y as Integer'等等。它不符合你的寫作方式。其次,你應該用英文寫成你的變量而不是德語,這對任何非德語的人來說都會更容易閱讀 – JMax

+0

謝謝你對Dim語句的評論。我剛剛讀到,沒有'as Type'的變量被聲明爲Variant。不知道。對於變量名稱:因爲這是英語質量保證網站,我同意這一點。 – DKSan

相關問題