Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Адрес ячейки, которая находится в центре листа. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Адрес ячейки, которая находится в центре листа. (Макросы/Sub)
Адрес ячейки, которая находится в центре листа.
cerber412 Дата: Воскресенье, 26.03.2017, 06:15 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброе утро, уважаемые программисты.
Подскажите решение.

Как макросом определить адрес той ячейки, которая находится в центре видимой части листа ?

К примеру в текущий момент - в центре видимой части листа находится Ячейка O23.
Если клавишей PageDown - прокрутить лист вниз и выделить какую-либо ячейку - то значение в желтой ячейке - должно смениться на адрес той ячейки, которая теперь находится в центре видимой части листа (то есть O65).

Событие - выделение ячейки или диапазона (Worksheet_SelectionChange)
К сообщению приложен файл: 52464.xls (32.5 Kb)
 
Ответить
СообщениеДоброе утро, уважаемые программисты.
Подскажите решение.

Как макросом определить адрес той ячейки, которая находится в центре видимой части листа ?

К примеру в текущий момент - в центре видимой части листа находится Ячейка O23.
Если клавишей PageDown - прокрутить лист вниз и выделить какую-либо ячейку - то значение в желтой ячейке - должно смениться на адрес той ячейки, которая теперь находится в центре видимой части листа (то есть O65).

Событие - выделение ячейки или диапазона (Worksheet_SelectionChange)

Автор - cerber412
Дата добавления - 26.03.2017 в 06:15
Nic70y Дата: Воскресенье, 26.03.2017, 07:43 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
[c1] = "O" & 20 + ThisWorkbook.Windows(1).VisibleRange.Top / 12.75
[/vba]циферки нужно подогнать под ваш эксель и монитор


ЮMoney 41001841029809
 
Ответить
Сообщение[vba]
Код
[c1] = "O" & 20 + ThisWorkbook.Windows(1).VisibleRange.Top / 12.75
[/vba]циферки нужно подогнать под ваш эксель и монитор

Автор - Nic70y
Дата добавления - 26.03.2017 в 07:43
cerber412 Дата: Воскресенье, 26.03.2017, 07:54 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Nic70y, что-то не работает.
Когда я прокручиваю вправо лист и щелкаю по ячейке - макрос выдает адрес по столбцу O, хотя там уже вроде как должен быть адрес навроде BW23.
К сообщению приложен файл: 52464-.xls (34.5 Kb)
 
Ответить
СообщениеNic70y, что-то не работает.
Когда я прокручиваю вправо лист и щелкаю по ячейке - макрос выдает адрес по столбцу O, хотя там уже вроде как должен быть адрес навроде BW23.

Автор - cerber412
Дата добавления - 26.03.2017 в 07:54
Nic70y Дата: Воскресенье, 26.03.2017, 08:09 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
вправо
ну про это я и не думал, предварительно так:[vba]
Код
[b1] = 14 + ThisWorkbook.Windows(1).VisibleRange.Left / 48
[/vba]ухожу с компа (поэтому и предварительно)
это плюс строка, а не вместо


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Воскресенье, 26.03.2017, 08:10
 
Ответить
Сообщение
вправо
ну про это я и не думал, предварительно так:[vba]
Код
[b1] = 14 + ThisWorkbook.Windows(1).VisibleRange.Left / 48
[/vba]ухожу с компа (поэтому и предварительно)
это плюс строка, а не вместо

Автор - Nic70y
Дата добавления - 26.03.2017 в 08:09
cerber412 Дата: Воскресенье, 26.03.2017, 08:23 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Nic70y, теперь он пишет цифру - как я понял это номер столбца - если считать по горизонтали.

Подскажите каким образом можно преобразовать это число - в букву названия столбца ?
 
Ответить
СообщениеNic70y, теперь он пишет цифру - как я понял это номер столбца - если считать по горизонтали.

Подскажите каким образом можно преобразовать это число - в букву названия столбца ?

Автор - cerber412
Дата добавления - 26.03.2017 в 08:23
buchlotnik Дата: Воскресенье, 26.03.2017, 09:47 | Сообщение № 6
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
опираясь на код Николая [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
r = ThisWorkbook.Windows(1).VisibleRange.Top / 12.75
c = 14 + ThisWorkbook.Windows(1).VisibleRange.Left / 48
[a1] = Replace(Cells(r, c).Address, "$", "")
End Sub
[/vba]
К сообщению приложен файл: 7648464.xls (36.0 Kb)
 
Ответить
Сообщениеопираясь на код Николая [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
r = ThisWorkbook.Windows(1).VisibleRange.Top / 12.75
c = 14 + ThisWorkbook.Windows(1).VisibleRange.Left / 48
[a1] = Replace(Cells(r, c).Address, "$", "")
End Sub
[/vba]

Автор - buchlotnik
Дата добавления - 26.03.2017 в 09:47
cerber412 Дата: Воскресенье, 26.03.2017, 10:53 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
buchlotnik, работает.
Спасибо.
 
Ответить
Сообщениеbuchlotnik, работает.
Спасибо.

Автор - cerber412
Дата добавления - 26.03.2017 в 10:53
RAN Дата: Воскресенье, 26.03.2017, 12:03 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim spl, r&, c&
    spl = Split(Replace(Replace(ActiveWorkbook.Windows(1).VisibleRange.Address(, , xlR1C1), "R", ":"), "C", ":"), ":")
    r = Val(spl(1)) + (Val(spl(4)) - Val(spl(1))) \ 2
    c = Val(spl(2)) + (Val(spl(5)) - Val(spl(2))) \ 2
    [C1] = Cells(r, c).Address(0, 0)
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim spl, r&, c&
    spl = Split(Replace(Replace(ActiveWorkbook.Windows(1).VisibleRange.Address(, , xlR1C1), "R", ":"), "C", ":"), ":")
    r = Val(spl(1)) + (Val(spl(4)) - Val(spl(1))) \ 2
    c = Val(spl(2)) + (Val(spl(5)) - Val(spl(2))) \ 2
    [C1] = Cells(r, c).Address(0, 0)
End Sub
[/vba]

Автор - RAN
Дата добавления - 26.03.2017 в 12:03
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Адрес ячейки, которая находится в центре листа. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!