Страницы: 1
RSS
Шкала прокрутки выделенных листов
 
Подскажите, можно ли одновременно выделить несколько листов и прокрутить вертикальную шкалу так, чтобы при открытии другого, выделяемого, идентичного листа, строки на нем оставались на том же уровне?  
 
Цитата
TokarevP написал:
можно ли одновременно выделить несколько листов
можно
Цитата
TokarevP написал:
и прокрутить вертикальную шкалу
можно
Цитата
TokarevP написал:
чтобы при открытии другого, выделяемого, идентичного листа, строки на нем оставались на том же уровне?
пробуйте, думаю никто не возражает.
По вопросам из тем форума, личку не читаю.
 
TokarevP, неужели не возникла мысль сначала самому проверить?
 
Цитата
vikttur написал: неужели не возникла мысль сначала самому проверить?
Дык не получается, может можно что-нибудь придумать. Тобишь выделить листы, прокрутить один, открыть второй, и чтобы строка была на том же уровне, что и на первом.
 
Вот так и нужно было вопрос ставить - пробовал, не получается...

Вручную - нельзя. Прокрутка ползунком - нет такого события листа, макросу не на что реагировать. Вариант - после прокрутки листа выделить ячейку первой незакрепленой строки. Макросу будет передан номер строки.
 
Цитата
vikttur написал:
Прокрутка ползунком - нет такого события листа
Виктор, как формулист  - поддерживаю :-), но как недомакрушник  считаю что  возможно все http://www.cpearson.com/Excel/DetectScroll.htm :-) Конкретно этот пример не работает без установки доп. DLL, но мысль моя наверно понятна.
Изменено: БМВ - 13.10.2018 20:44:58
По вопросам из тем форума, личку не читаю.
 
Так и я недо-  и мне легче отследить событие листа  :)
 
TokarevP, может подойдет такой вариант? Выделить нужные листы, выделить нужную строку, либо ячейку. А дальше уже плясать от нее.
 
Было бы замечательно, но визуально, при переходе на другой лист уровень прокрутки прежний, даже, если мы не только выделяем ячейку , но ее и редактируем ее.  
 
Если подходит вариант изменения скрола по выделению ячеек на листах - то можно использовать такой код:
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ws As Worksheet
    Dim sr, sc
    
    sr = ActiveWindow.ScrollRow
    sc = ActiveWindow.ScrollColumn
    Application.EnableEvents = 0
    For Each ws In ActiveWindow.SelectedSheets
        If ws.Name <> Target.Parent.Name Then
            Application.Goto ws.Range(Target.Address), True
            ActiveWindow.ScrollRow = sr
            ActiveWindow.ScrollColumn = sc
        End If
    Next
    Application.Goto Target
    Application.EnableEvents = 1
End Sub

Вставлять код в модуль ЭтаКнига.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
А расположить листы рядом и синхронизировать прокрутку не вариант?
 
Всем спасибо, помогло.
Страницы: 1
Наверх