Здравствуйте, программисты ВБА. У меня на листе две гиперссылочные фигуры - щелчок по одной фигуре - перемещает к другой фигуре.
Как располагать лист по фигуре - по горизонтали так же посередине, а вот по вертикали - по самому верху (чтобы фигура располагалась в самом верху) ? (это касается той фигуры, которая в глубине листа стоит. Та фигура, что с краю - ее понятное дело по горизонтали не выровняешь. Но вот по высоте можно выровнять)
бр-р-р-р...мозг загнулся Как это - лист по фигуре? Это же фигура на листе, а не лист на фигуре. Следовательно перемещать лист относительно фигуры нельзя. Можете сформулировать как-то более корректно задачу? Например, можно понять так: фигура всегда должна быть во второй видимой строке по центру листа. Но не уверен, что именно это имелось ввиду. Для этого можно чуть модифицировать Ваш код:
Код
Dim r&, cl&
Application.ScreenUpdating = False
With ActiveWorkbook.Windows(1)
Application.Goto ActiveSheet.Shapes("Шестиугольник 16").TopLeftCell.Address(1, 1, xlR1C1, True), True
.ScrollRow = ActiveSheet.Shapes("Шестиугольник 16").TopLeftCell.Row
.ScrollColumn = ActiveSheet.Shapes("Шестиугольник 16").TopLeftCell.Column
With .VisibleRange
r = IIf(.Row - .Rows.Count / 2 < 1, 1, .Row - .Rows.Count / 2)
cl = IIf(.Column - .Columns.Count / 2 < 1, 1, .Column - .Columns.Count / 2)
End With
' .ScrollRow = r
.ScrollColumn = cl
End With
Изменено: Дмитрий(The_Prist) Щербаков - 23.09.2019 09:59:36(исправил кракозябры после копирования в англ.раскладке)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...