Программно прокрутить лист в начало

Автор Alex16, 7 декабря 2016, 10:03

0 Пользователи и 1 гость просматривают эту тему.

Alex16

Собсно вопрос в теме. Как программно прокрутить лист на первую строку.
Т.е. если сохранили файл в момент когда курсор был на 357(например) строке.
А вот при открытии файла нужно чтоб была первая строка видна

JohnSUN

#1
Обычно как-то так
Sub gotoCell(Optional cellAddr As String)
If IsMissing(cellAddr) Then cellAddr = "A1"
With ThisComponent.getCurrentController()
.select(.getActiveSheet().getCellRangeByName(cellAddr))
.Select(ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges"))
End With
End Sub
Но, насколько я научился понимать подтекст твоих вопросов, тебе нужен Вид-Фиксировать ячейки
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

rami

На текущем листе:
Sub Main
ThisComponent.CurrentController.FirstVisibleRow=0   'или если нужно FirstVisibleColumn
End Sub

Alex16

Цитата: rami от  7 декабря 2016, 09:06ThisComponent.CurrentController.FirstVisibleRow=0
Спасибо - это снова то, что доктор прописал)
Цитата: JohnSUN от  7 декабря 2016, 08:54Но, насколько я научился понимать подтекст твоих вопросов, тебе нужен Вид-Фиксировать ячейки
Не, не это. Хотя лично мне - это было бы удобно. Но те, для кого это делаю, у них мониторы "широкие но узкие" (19' широкоформатные). Поэтому если закрепить область сверху, то для работы остается полоска - неудобно.
Но процедурку возьму на вооружение.

economist

#4
Если вспомнить, что очень лаконичный VBA, то можно и так:

Option VBASupport 1

Sub GotoA1()
[A1].Activate
End sub


Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...