День добрый!
Есть задача.
На листе1 есть гиперссылка "Перейти" на лист3
И на листе2 есть гиперссылка "Перейти" на лист3
На листе3 надо сделать гиперссылку "Назад" таким образом, чтобы при нажатии на нее мы возвращались на тот лист (1 или 2), с которого только что вызывали гиперссылку "Перейти" на лист3.
Желательно без макросов.
Excel. Как сделать гиперссылку "Назад"
Модератор: Naeel Maqsudov
без макросов наверно не получиться запиши например как действует кнопка назад с веб панели
ака хинт: коментируйте код, самим же легче будет разобраться 

- EducatedFool
- Сообщения: 197
- Зарегистрирован: 06 апр 2008, 14:03
- Откуда: Россия, Урал
- Контактная информация:
Вряд ли получится...Желательно без макросов
А с макросами - без проблем: (проверено в Excel 2003)
Код: Выделить всё
Private Sub [B]Workbook_SheetFollowHyperlink[/B](ByVal Sh As Object, ByVal Target As Hyperlink)
StartCell = Target.Range.Address(, , , True)
If InStr(1, Target.SubAddress, "[B]Лист3[/B]" & "!") Then
With Range(Target.SubAddress)
.Hyperlinks.Delete
.Parent.Hyperlinks.Add .Cells(1), "", StartCell, "Назад"
End With
End If
End Sub
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
При переходе по гиперссылке сам Excel использует
Application.Goto(Reference,true)
А это значит, чот текущее выделение должно помещаться в коллекцию
Application.PreviousSelections(Index)
Так что туда переходите без макросов, а обратно уже макросом, но просто на первый элемент коллеции PreviousSelections, если таковой существует. Т.е. что-то типа
On Error Resume Next
Application.Goto(Application.PreviousSelections(1))
Как-то так...
Надо пробовать...
Application.Goto(Reference,true)
А это значит, чот текущее выделение должно помещаться в коллекцию
Application.PreviousSelections(Index)
Так что туда переходите без макросов, а обратно уже макросом, но просто на первый элемент коллеции PreviousSelections, если таковой существует. Т.е. что-то типа
On Error Resume Next
Application.Goto(Application.PreviousSelections(1))
Как-то так...
Надо пробовать...
Спасибо всем за ответы,
пришел к такому варианту...
для листов 1 и 2 пишем код:
на листе 3 делаем ссылку на диапазон с именем "Name_r1".
Было бы здорово при создании гиперссылки
и указании места в документе была возможность поставить галочку - "автоматически возвращаться на место последнего перехода"
пришел к такому варианту...
для листов 1 и 2 пишем код:
Код: Выделить всё
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
ActiveWorkbook.Names.Add Name:="Name_r1", RefersToR1C1:=Target.Range
End Sub
на листе 3 делаем ссылку на диапазон с именем "Name_r1".
Было бы здорово при создании гиперссылки
и указании места в документе была возможность поставить галочку - "автоматически возвращаться на место последнего перехода"
