Доброе время суток!
Прошу прощения за дилетантский вопрос, голову сломал - простого решения не нашел.
Суть: план дачи, на котором разноцветными ячейками с примечаниями помечены те или иные посадки и постройки. На другом листе таблица со списком посадок и прочей информацией по ним (время высева, сбора и тп).
Требуется: кликнуть на плане на ячейку с примечанием "Земляника" и автоматом переместиться на ячейку "Земляника" на втором листе.
Решения с записью формулы в ячейке не нашел. Понимаю, что задача легко решается через макросы, но я не спец в этом деле.
Поможете?
Цитата: Алексей Вагрант от 15.01.2017, 16:27
Требуется: кликнуть на плане на ячейку с примечанием "Земляника" и автоматом переместиться на ячейку "Земляника" на втором листе.
Гиперссылка - или через Ctrl+k, или с помощью функции ГИПЕРССЫЛКА.
К сожалению, гиперссылка не катит, т.к. ячейка перестает быть пустой: в ней появляется текст гиперссылки.
Текст можно убрать...
Что-то я не увидел в свойствах гиперссылки удаление текста. К тому же, если нет текста, то на что я буду кликать? Сама ячейка инертна к этому.
Присвойте ячейке формат ;;; и текст не будет виден.
Отлично! Гиперссылку создал, присвоил формат ";;;" - текст ссылки скрылся, но... при нажатии на ячейку выскакивает сообщение: "Это действие запрещено политикой организации..." и никто никуда не едет.
Моя организация - кухня в доме. Как самому себе разрешить переход по гиперссылке?
Редактирование HKEY_CLASSES_ROOT \.html не помогло. IE и Хрома в системе нет, стоит Опера.
Проблему с гиперссылкой решил! По совету некоторых пробовал установить в систему IE. Инсталяция прошла, но IE в системе не появился. Тогда зашел в Advanced system care:Инструменты:Ремонт системы: Ремонт IE. Отремонтировал. Перезагрузился. Все заработало.
Всем спасибо!
P.S. Нашел еще 2 способа решения задачи.
1. Создать (записать) макрос, создать кнопку, присвоить кнопке макрос.
2. Создать модуль:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim adrs As String
If Not Application.Intersect(Target, Range("диапазон")) Is Nothing Then
Select Case Target.Address
Case "$F$10"
adrs = "A1"
Case "$G$10"
adrs = "B1"
...
End Select
Sheets("Лист").Activate
Sheets("Лист").Range(adrs).Select
End If
End Sub
Цитата: Алексей Вагрант от 16.01.2017, 14:36Создать модуль:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Неправильно. Это событие листа, поэтому код нужно размещать в
модуле листа. Если код размесить во вновь созданном модуле, он (код) работать не будет
Совершенно верно, этот код у меня размещен в
модуле листа. Все работает с ограниченным диапазоном.