Страницы: 1
RSS
Прокрутка до именованной ячейки
 
В таблице более 1000 строк и строки постоянно добавляются, в шапке таблицы несколько кнопок для быстрого перехода по ней, на кнопке макрос типа:
Код
Range(Names("test")).Select

При выполнении макроса, прокрутка до именованной ячейки "test" происходит на середину экрана.
Если так:
Код
Range(Names("test")).Select
ActiveWindow.SmallScroll Down:=18

то при изменении размера окна (например, сделать окно меньше), именованная ячейка прокручивается выше видимого экрана.
Что можно изменить в макросе, чтобы при его выполнении ячейка "test" ВСЕГДА была вверху экрана. Помогите, плиз
Изменено: sashgera - 02.02.2013 02:14:55
 
Надо тестить, поиграйтесь с количеством ячеек для своего монитора
Мне для ноута подошла пропорция 11 ячеек с любым зумом

Код
Sub tt()
 Dim lngZoom As Long
 Dim dblOffset As Double
 lngZoom = ActiveWindow.Zoom
 dblOffset = Int(11 / (lngZoom / 100))
 With Range(Names("test" ;) )
 .Offset(dblOffset, 0).Select: .Select
 End With
End Sub
Изменено: LightZ - 01.02.2013 23:51:02
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
LightZ,
Эта таблица лежит в сетевой папке и ее юзают на разных компах, соответственно прокрутка именованной ячейки до верха экрана у всех будет выполняться по-разному. Может быть есть другой способ?
Изменено: sashgera - 02.02.2013 00:43:27
 
После выполнения макроса нажать на up - стрелку вверх не подойдет?
 
Nic70y,
CTRL + UP переходим к краю текущей области данных, это конечно не то, хотя может быть я вас не совсем понял, приведите пример, как это программно
 
Я Вам предлагал без CTRL

Плохой с меня программист - скажем ни какой.
Посмотрите пример в файле.
Изменено: Nic70y - 02.02.2013 02:14:27 (заменил файл)
 
?
Код
Application.Goto Cells(Rows.Count, Range("test").Column)
Application.Goto Range("test")
 
С.М.,
спасибо, это именно то, что было нужно
 
Наверное лучше:
Код
Application.Goto Cells(Rows.Count, Columns.Count)
Application.Goto Range("test")
Изменено: С.М. - 02.02.2013 02:51:52
 
С.М.,
еще раз, спасибо
 
С.М.,
Если не сложно, как изменить ваш код, чтобы именованная ячейка после выполнения макроса была без выделения.
Например активная ячейка A1, далее выполняется макрос который "прокручивает" таблицу на именованную ячейку, но при этом активной оставалась ячейка A1
Изменено: sashgera - 02.02.2013 16:08:45
 
В конце кода выделить А1 - не вариант?
 
"я - крутой" ©  :)
Код
Cells(1).Select
 
Код
ActiveWindow.ScrollRow = Range("test").Row
 
С.М.,
Вы меня не поняли, с просьбой выделить A1  Cells(1).Select я не стал бы обращаться, и отнимать у вас время, наверное, я плохо объяснил.
Например:
Код
Range("A1").ClearContents 
здесь мы обращаемся к ячейке А1 без выделения и удаляем содержание в ней
Также и в моем случае:
Ставлю курсор на А1 или на А101, тем самым делаю ячейку активной (так надо, долго объяснять), далее выполняется макрос
Код
Application.Goto Cells(Rows.Count, Columns.Count)
Application.Goto Range("test")

Нужно чтобы именованная ячейка "test" прокрутилась до верхней границы экрана, но при этом не выделялась (активной остается по-прежнему А1 или А101)
 
Вариант dnv.
 
С.М.,
пожалуйста, можно подробней или код
 
Подробней. Код в сообщении от
2 Фев 2013 16:45:23
 
С.М., dnv
спасибо
Страницы: 1
Читают тему
Наверх