Адрес ячейки, которая находится в центре листа.
cerber412
Дата: Воскресенье, 26.03.2017, 06:15 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Доброе утро, уважаемые программисты. Подскажите решение. Как макросом определить адрес той ячейки, которая находится в центре видимой части листа ? К примеру в текущий момент - в центре видимой части листа находится Ячейка O23. Если клавишей PageDown - прокрутить лист вниз и выделить какую-либо ячейку - то значение в желтой ячейке - должно смениться на адрес той ячейки, которая теперь находится в центре видимой части листа (то есть O65). Событие - выделение ячейки или диапазона (Worksheet_SelectionChange)
Доброе утро, уважаемые программисты. Подскажите решение. Как макросом определить адрес той ячейки, которая находится в центре видимой части листа ? К примеру в текущий момент - в центре видимой части листа находится Ячейка O23. Если клавишей PageDown - прокрутить лист вниз и выделить какую-либо ячейку - то значение в желтой ячейке - должно смениться на адрес той ячейки, которая теперь находится в центре видимой части листа (то есть O65). Событие - выделение ячейки или диапазона (Worksheet_SelectionChange) cerber412
К сообщению приложен файл:
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]циферки нужно подогнать под ваш эксель и монитор
[vba]Код
[c1] = "O" & 20 + ThisWorkbook.Windows(1).VisibleRange.Top / 12.75
[/vba]циферки нужно подогнать под ваш эксель и монитор Nic70y
Ю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.
Nic70y, что-то не работает. Когда я прокручиваю вправо лист и щелкаю по ячейке - макрос выдает адрес по столбцу O, хотя там уже вроде как должен быть адрес навроде BW23. cerber412
Ответить
Сообщение 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]ухожу с компа (поэтому и предварительно) это плюс строка, а не вместо
ну про это я и не думал, предварительно так:[vba]Код
[b1] = 14 + ThisWorkbook.Windows(1).VisibleRange.Left / 48
[/vba]ухожу с компа (поэтому и предварительно) это плюс строка, а не вместо Nic70y
Ю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
Ответить
Сообщение 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]
опираясь на код Николая [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
Ответить
Сообщение опираясь на код Николая [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
[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
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение [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