Активная ячейка посередине экрана

Программирование на Visual Basic for Applications
Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Активная ячейка посередине экрана

Сообщение Calvin » 22.02.2007 (Чт) 19:30

Здраствуйте, уважаемые!
Как сделать так, чтобы при перемещении по ячейкам, активная ячейка всегда была в центре (за исключением того, когда это ограничено границами экрана)....ну там можно сделать on error resume next.....событие я знаю какое...мне мясо нужно
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 22.02.2007 (Чт) 20:02

насчет "ограничения границами экрана" не скажу (т.к. мне не понятно о чем речь), но то, что ни одна ячейка изначально находящаяся поверх или слева от центра экрана никогда не побывает в центре это наверняка (за искл. передвижения самого окна, разумеется)
Привет,
KL

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 22.02.2007 (Чт) 22:22

ни одна ячейка изначально находящаяся поверх или слева от центра экрана никогда не побывает в центре это наверняка

так вот на счет этих ячеек я и имел ввиду
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Genyaa
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 17.10.2006 (Вт) 13:46

Сообщение Genyaa » 23.02.2007 (Пт) 12:41

Вот обработчик для модуля книги:

Код: Выделить всё
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim cc As Range
    Dim cw As Range
    Dim dw As Long, dh As Long
   
    Set cc = Target
    Set cc = Sh.Cells(Int(cc.Row + cc.Rows.Count / 2), Int(cc.Column + cc.Columns.Count / 2))
    Set cw = ActiveWindow.VisibleRange
    Set cw = Sh.Cells(Int(cw.Row + cw.Rows.Count / 2), Int(cw.Column + cw.Columns.Count / 2))
   
    dw = cc.Column - cw.Column
    dh = cc.Row - cw.Row
   
    On Error Resume Next
   
    ActiveWindow.SmallScroll Down:=dh
    ActiveWindow.SmallScroll ToRight:=dw
   
End Sub


Может понравится.
Всякое решение плодит новые проблемы.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 79

    TopList