0 / 0 / 0 Регистрация: 15.01.2018 Сообщений: 8 |
|
1 |
|
Копирование гиперссылки в ВБА15.01.2018, 18:10. Показов 4857. Ответов 13
Помогите ,пожалуйста.В одной таблице в каждой ячейке хранится гиперссылка на файл документа.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
15.01.2018, 18:10 |
Ответы с готовыми решениями: Графики в ВБА Прикладное программирование ВБА При открытии своей книги,программным путём,формировать на листе2 заголовок… Суммирование строк в вба Увидеть код ВБА 13 |
Заблокирован |
|
15.01.2018, 18:15 |
2 |
olga_b, что есть и что надо — маленький пример в виде файла приложите…
0 |
0 / 0 / 0 Регистрация: 15.01.2018 Сообщений: 8 |
|
15.01.2018, 18:30 [ТС] |
3 |
Вид табличек
0 |
1232 / 670 / 238 Регистрация: 22.12.2015 Сообщений: 2,089 |
|
15.01.2018, 19:52 |
4 |
olga_b, в общем-то — смысл искать решение на VBA? Если таблицу скопировать в Эксель, скопировать первый столбец и вставить поверх второго через ctrl+alt+v с опцией «только значения», текст гиперссылки сохраняется. Копируете в любое место в Word → преобразовать в текст, и получаете нужный вам список гиперссылок, копируете его в нужную ячейку.
1 |
0 / 0 / 0 Регистрация: 15.01.2018 Сообщений: 8 |
|
15.01.2018, 20:42 [ТС] |
5 |
Смысл в том,что документ формируется из программы бизнес-студио, в котором много таблиц и текста, и эта одна из таблиц, в ячейку в которую нужно вставить список гиперссылок, пишутся данные из 4-таблиц. И когда это текст,то проблем не возникает,проблемы только с гиперссылками
0 |
1232 / 670 / 238 Регистрация: 22.12.2015 Сообщений: 2,089 |
|
15.01.2018, 20:47 |
6 |
в ячейку в которую нужно вставить список гиперссылок, пишутся данные из 4-таблиц. Ну и беда то в чем? Если с текстом проблем не возникает, то гиперссылки нужно копировать транзитом через эксель, на выходе будет текст из левой колонки с присвоенными этому тексту гиперссылками из правой.
0 |
0 / 0 / 0 Регистрация: 15.01.2018 Сообщений: 8 |
|
15.01.2018, 21:51 [ТС] |
7 |
Попробовала через єксель. Копируете в любое место в Word → преобразовать в текст, и получаете нужный вам список гиперссылок- получаю список названий гиперссылок ,а не сами ссылки. Мне нужно именно в конец ячейки таблицы вставить список из нескольких гиперссылок. Именно в этом проблема
0 |
Dinoxromniy 1232 / 670 / 238 Регистрация: 22.12.2015 Сообщений: 2,089 |
||||
15.01.2018, 22:04 |
8 |
|||
получаю список названий гиперссылок ,а не сами ссылки Ссылки были потеряны еще в экселе — проверьте. Как вариант — можете использовать код ниже.
0 |
0 / 0 / 0 Регистрация: 15.01.2018 Сообщений: 8 |
|
15.01.2018, 22:52 [ТС] |
9 |
Вставляет мимо ячейки второй таблицы Миниатюры
0 |
Dinoxromniy 1232 / 670 / 238 Регистрация: 22.12.2015 Сообщений: 2,089 |
||||
15.01.2018, 23:18 |
10 |
|||
Вставляет мимо ячейки второй таблицы Вставляет в конец документа, т.к. непонятно, где вторая таблица будет в реальном документе.
0 |
0 / 0 / 0 Регистрация: 15.01.2018 Сообщений: 8 |
|
15.01.2018, 23:29 [ТС] |
11 |
Спасибо огромное, завтра на работе попробую на реальном документе. Должно уже получиться. У меня таблицы там по закладкам
0 |
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||
15.01.2018, 23:44 |
12 |
|||
olga_b, может это поможет — макрос преобразует таблицу типа первой таблицы в документе в простой текст с гиперссылками. Перед запуском поставьте курсор в таблицу, которую надо преобразовать. После скопируйте абзацы и вставьте в нужное место.
1 |
1232 / 670 / 238 Регистрация: 22.12.2015 Сообщений: 2,089 |
|
16.01.2018, 00:03 |
13 |
Казанский, красиво.
0 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
16.01.2018, 00:20 |
14 |
Dinoxromniy, да. В Word VBA у многих объектов есть методы Previous и Next (F1 — Previous).
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
16.01.2018, 00:20 |
14 |
Всем доброго здоровья! Планета Excel Перенести гиперссылку довольно легко обычным Copy, но тогда я не смогу работать массивом; придется все делать на листе — а это очень долго. |
|
Sanja Пользователь Сообщений: 14838 |
#2 01.07.2017 12:29:48
Ну для одной ячейки можно так
А вот как получить это в массив без перебора ячеек — вопрос.. Согласие есть продукт при полном непротивлении сторон. |
||||
Sanja, спасибо, подумаю над этим вариантом. |
|
Sanja Пользователь Сообщений: 14838 |
#4 01.07.2017 12:36:57 Почитал тут справку. И т.к. HyperLinks это КОЛЛЕКЦИЯ, то с ней можно работать отдельно от ячеек. Например так
Изменено: Sanja — 01.07.2017 12:42:45 Согласие есть продукт при полном непротивлении сторон. |
||
Sanja Пользователь Сообщений: 14838 |
#5 01.07.2017 13:59:59 Михаил, как-то так получилось. Не знаю, насколько быстро будет на больших объёмах
Прикрепленные файлы
Согласие есть продукт при полном непротивлении сторон. |
||
Sanja, Ок, спасибо, попробую. |
|
RAN Пользователь Сообщений: 7091 |
#7 01.07.2017 20:48:43 Немного поигрался. Количество гиперсылок — max возможное (65530 шт).
отрабатывает 40-50сек
1,5 минуты читает, 1,5 минуты пишет Изменено: RAN — 01.07.2017 20:49:12 |
||||
Предположим, у меня есть список значений в столбце A, и каждая ячейка содержит другую гиперссылку, теперь я хочу скопировать только гиперссылки без текста в другой столбец E, как показано на следующем снимке экрана. Возможно, нет прямого способа решить эту задачу в Excel, но здесь я могу ввести код VBA для решения этой проблемы.
Скопируйте гиперссылку из одной ячейки в другую с кодом VBA
Скопируйте гиперссылку из одной ячейки в другую с кодом VBA
Чтобы скопировать только адреса гиперссылок без текста в другие ячейки, следующий код может оказать вам услугу, например:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.
Код VBA: копировать гиперссылку только из одной ячейки в другую:
Sub CopyHyperlinks()
'Uodateby Extendoffice
Dim xSRg As Range
Dim xDRg As Range
Dim I As Integer
Dim xAddress As String
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xSRg = Application.InputBox("Please select the original range you want to copy hyperlinks:", "KuTools For Excel", xAddress, , , , , 8)
If xSRg Is Nothing Then Exit Sub
Set xDRg = Application.InputBox("Please select the new range you want to paste the hyperlinks only", "KuTools For Excel", , , , , , 8)
If xDRg Is Nothing Then Exit Sub
Set xDRg = xDRg(1)
For I = 1 To xSRg.Count
If xSRg(I) <> "" And xDRg.Offset(I - 1) <> "" Then
If xSRg(I).Hyperlinks.Count = 1 Then
xDRg(I).Hyperlinks.Add xDRg(I), xSRg(I).Hyperlinks(1).Address
End If
End If
Next
End Sub
3, Затем нажмите F5 нажмите клавишу для запуска этого кода, появится диалоговое окно, напоминающее вам о выборе ячеек, в которые вы хотите скопировать только гиперссылки, см. снимок экрана:
4, Затем нажмите OK, затем выберите ячейки, в которые вы хотите вставить гиперссылки, только в другое диалоговое окно, см. снимок экрана:
5. И адреса гиперссылок были скопированы из исходных ячеек в указанные ячейки по мере необходимости, см. Снимок экрана:
Внимание: Этот код также может помочь вам скопировать гиперссылки с одного листа на другой по вашему желанию.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (13)
Оценок пока нет. Оцените первым!
@tachyglossus
Extract actual addresses from hyperlinks with VBA code
Press on the heading to get more possibilities and options.
Hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications window.
Click Insert> Module and paste the following code into the module window.
Sub Extracthyperlinks ()
‘Updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = «KutoolsforExcel»
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox («Range», xTitleId, WorkRng.Address, Type: =
For Each Rng In WorkRng
If Rng.Hyperlinks.Count> 0 Then
Rng.Value = Rng.Hyperlinks.Item (1) .Address
End If
Next
End Sub
Then press F5 when you press the key to run the code, it will bring up a dialog box for you to choose the hyperlinks that you want to extract the actual addresses from.
Then click OK and the selected cell contents will be converted to the real hyperlink addresses in the original range.
Cell hyperlink = «https://windchill.com/Windchill/app/#ptc1/tcomp/infoPage?ContainerOid=OR%3Awt.pdmlink.PDMLinkProduct%dfasdfasdfasdf&oid=VR%3Awt.doc.WTDocument%»
Vba code:
Url = activecell.hyperlinks(1).address
Result:
Url = "https://windchill.com/Windchill/app/"
I need full hyperlink but I am getting result up to before #
How can I resolve this issue?
halfer
19.8k17 gold badges97 silver badges185 bronze badges
asked Mar 17, 2021 at 19:57
1
It splits the address in 2 properties for me and it needs to be rebuilt:
Url = activecell.hyperlinks(1).Address & "#" &activecell.hyperlinks(1).SubAddress
answered Mar 17, 2021 at 20:15
Dávid LaczkóDávid Laczkó
1,0692 gold badges6 silver badges22 bronze badges
1