2011-11-30 5 views
0

사용자가 현재보고있는 Excel 워크 시트의 가운데에 차트를 배치해야합니다. 분명히 시트 좌표계의 X 축에서 0이 시작되고 X가 오른쪽으로 이동할 때 X가 증가합니다. 사용자는 예를 들어 J에서 Z까지의 열을 볼 수 있으며 사용자가보고있는 시트의 좌표가 필요하므로 그 앞에 차트를 배치 할 수 있습니다.Excel 시트에서 현재보기 포트의 좌표를 가져 오는 방법은 무엇입니까?

시트의 좌표계를 기준으로 시트의 "보기 포트"좌표를 얻으려면 어떻게해야합니까? 다른 간단한 방법으로 차트를 만들 수 있습니까?

감사합니다.

답변

4

당신은 내용 $A$271:$X$312 나는이 당신을 도와 희망 와 MSGBOX를 엽니 다 내 경우

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

뭔가를 시도 할 수 있습니다.

EDIT :

좋아, XY 좌표로 알아 내려고 시도하고 다음에 도착 : 좌표 좌상 X/Y에서

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

인쇄 및 우측 하단 X/Y 좌표

편집 NO2 :

단 몇 분을했고 내 testworkbook하여 작업을 완료했다. 여기에 마크로가 있습니다 :

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'등을 사용해야합니다. 그것은 당신이 그것을 작성한 방식으로 작동하지 않습니다. 둘째, 독일어 대신 vars를 작성해야합니다. 독일어가 아닌 사람이라면 쉽게 읽을 수 있습니다. – JMax

+0

Dim 문에 대한 의견을 보내 주셔서 감사합니다. 방금 '유형'이없는 변수는 변형으로 선언됩니다. 그걸 몰랐어. 변수 이름의 경우 : 영어 QA 사이트이므로 동의합니다. – DKSan

관련 문제