Страница: 1 |
Страница: 1 |
Вопрос: Вопрос по VB для Экселя.
Добавлено: 22.11.06 13:28
Автор вопроса: Сергей
Привет.
Может кто сталкивался или кто знает помогите пож-та.
Суть такая: необходимо в экселе написать макрос. Причем загвоздка в том, что необходимо получить координаты АКТИВНОЙ ячейки (номер строки, номер столбца) в цифрах. Есть ли такая функция, возвращающая координаты активной ячейки или как это можно обойти? Т.е. хочу написать универсальную процедуру, но "ей" необходимо знать координаты ячейки (активной), чтоб потом отталкиваться от них.
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Незнайка
Вопросов: 7
Ответов: 188
Профиль | | #1
Добавлено: 22.11.06 13:57
Если именно только цифры, то:
Строка=Selection.Row
Номер ответа: 2
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #2
Добавлено: 22.11.06 14:57
http://www.vbnet.ru/forum/show.aspx?id=123136
Target - возвращает активную ячейку при её активации
Для наглядности:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Value = 45
End Sub
Номер ответа: 3
Автор ответа:
Сергей
Вопросов: 13
Ответов: 25
Профиль | | #3
Добавлено: 22.11.06 15:36
АлександР, Незнайка - благодарю за ответы.
А можно ли как-нить получить координаты ячейки, которая была изменена (в обрабочтике Private Sub Worksheet_Change(ByVal Target As Range)). Вот в чем вопрос... . функции Selection.Column(Row) возвращают координаты текущей активной ячейки, но она не равна измененной (после нажатия Ентера) курсор переходит или вправо или вниз, вот этой ячейки и возвращаютя координаты. А можно ли узнать координаты измененной, которая вызвала "Worksheet_Change"?
Номер ответа: 4
Автор ответа:
Незнайка
Вопросов: 7
Ответов: 188
Профиль | | #4
Добавлено: 22.11.06 17:01
Эти методы существуют, но к сожалению обращаться к ним из VBA невозможно.
Номер ответа: 5
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #5
Добавлено: 22.11.06 17:11
Незнайка, не говори чушь.
Сергей, а Target это по-твоему что?
Номер ответа: 6
Автор ответа:
Сергей
Вопросов: 13
Ответов: 25
Профиль | | #6
Добавлено: 23.11.06 08:39
Все разобрался, работает. Для тех кому интересно:
в событии "Worksheet_Change" можно получить координаты ячейки, вызвавшей событие:
Row_ch = Target.Row 'номер строки.
Col_ch = Target.Column 'и, соответственно, номер столбца.
Номер ответа: 7
Автор ответа:
Незнайка
Вопросов: 7
Ответов: 188
Профиль | | #7
Добавлено: 23.11.06 09:43
Согласен...
Я имел ввиду походу своё...а именно, что невозможно при событии Worksheet_Change(ByVal Target As Range)определить какое значение было до этого и на какое оно изменилось - например, как это происходит при записи событий когда назначен общий доступ к книге. Как например отслеживать удаление сторок??? Или изменение диапазонов???
Просто ответил не в тему...