Как получить координаты текущего порта просмотра в листе Excel? - PullRequest
0 голосов
/ 30 ноября 2011

Мне нужно разместить диаграмму в центре рабочего листа Excel, там, где в данный момент просматривает пользователь. Очевидно, 0 - это самое начало оси X системы координат листа, и X увеличивается по мере того, как мы движемся вправо. Пользователь может просматривать столбцы от J до Z, например, и мне нужны координаты того места, которое просматривает пользователь, чтобы я мог поместить диаграмму прямо перед ним.

Как получить координаты "порта просмотра" листа относительно системы координат листа? Существуют ли другие, более простые методы, чтобы просто поместить график там?

Спасибо.

1 Ответ

4 голосов
/ 30 ноября 2011

вы могли бы попробовать что-то вроде

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

В моем случае это открывает msgbox с контентом $A$271:$X$312 Надеюсь, это вам помогло.

РЕДАКТИРОВАТЬ:

Хорошо, попытался выяснить это с помощью координат 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

РЕДАКТИРОВАТЬ №2.:

У меня было всего несколько минут, и я выполнил задание с помощью моей тетради.Вот макро:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...