Страницы: 1
RSS
Копирование АДРЕСА текущей ячейки в буфер обмена, или как быстро создавать внутренние гиперссылки по книге?, Нужно для быстрого создания гиперссылок внутри книги Excel с кучей листов.
 
Задача: быстро создавать навигацию по книге с кучей листов.

Как сейчас:
1. запомнить в голове адрес и лист целевой ячейки
2. Переходим на лист, где создаем ссылку
3. CTRL+K
4. Мучительно ищем в огромном списке нужный лист (а по дефолту Excel предлагает список имен, а не листов! Жутко бесит и неудобно. Т.е. и тут лишние клики мышки, нажать "место в документе", потом закрыть "определённые имена", потом уже открыть "список листов" и искать нужный)
5. Ручками пишем адрес ячейки.


Как хочу:
1. Хоткей на копирование в буфер адреса ячейки с полным путем. Какой?
2. Переходим на лист, где создаем ссылку
3. CTRL+K (или что-то другое, если есть такой вариант)
4. CTRL+V — но сильно сомневаюсь, что прокатит, т.к. мне надо не только адрес ячейки вставить, но ещё и путь до целевого листа. Как тогда ещё можно?


Всякие макросы для автоматического создания оглавления у меня есть, но мне необходимо создавать всякие внутренние переходы между листами, а не через оглавление.

PS. Если есть хоть какой-то вариант решения задачи через Надстройку Plex или ASAP — то тоже пойдет, они обе у меня есть.
Изменено: zamboga - 24.01.2024 14:52:30
 
Цитата
написал:
1. Хоткей на копирование в буфер адреса ячейки с полным путем. Какой?
Макросом можно, который повесить на свое сочетание клавиш:
Код
Sub CopyAddrToCB()
    Dim st As String
    st = "'" & ActiveCell.Parent.Name & "'!" & ActiveCell.Address
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText st
        .PutInClipboard
    End With
End Sub
 
Код
Option Explicit

Sub Hyperlink_Add()
    Dim sSubAddress As String
    sSubAddress = ClipboardText()
    If sSubAddress <> "" Then
        'ActiveCell.Hyperlinks.Delete
        ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:="", SubAddress:=sSubAddress
    End If
End Sub
 
Sub Hyperlink_Save()
    Dim sSubAddress As String
    sSubAddress = "'" & ActiveSheet.Name & "'!" & Selection.Address(0, 0)
    SetClipboardText sSubAddress
End Sub
 
Function ClipboardText() ' чтение из буфера обмена
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        ClipboardText = .GetText
    End With
End Function
 
Sub SetClipboardText(ByVal txt$) ' запись в буфер обмена
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText txt$
        .PutInClipboard
    End With
End Sub

 
webley,
Как-то странно копирует адрес в буфер.
см 1й скрин-каст https://i.imgur.com/DhMBVrc.gif


МатросНаЗебре,
В буфер копирует через раз, то нормально, то ошибка, как и на предыдущем макросе от webley
Из буфера обратно ссылку не вставляет, даже если она "нормально" скопировалась.
2й скрин-каст: https://i.imgur.com/JSJEso0.gif

Файл для растерзания приложил. Заполнен случайными данными.

ЧЯДНТ? (пока всё это без хоткеев, тупо в лоб через gui, а потом и хоткей и кнопки на риббон сделаю)
Страницы: 1
Наверх