Как преобразовать столбец текстовых URL-адресов в активные гиперссылки в Excel?

275

У меня есть столбец в Excel, в котором у меня есть все значения URL сайта. У меня вопрос, я хочу превратить значения URL в активные ссылки. В этом столбце около 200 записей с разными URL во всех ячейках. Есть ли способ, которым я могу создавать активные гиперссылки на все ячейки без написания макроса.

разработчик
источник

Ответы:

314

Если вы не хотите создавать макрос и если вы не против дополнительного столбца, просто создайте новый столбец рядом с вашим столбцом URL-адресов.

В новом столбце введите формулу =HYPERLINK(A1)(заменив A1 на интересующую вас ячейку). Затем скопируйте формулу на оставшиеся 200 записей.

ПРИМЕЧАНИЕ. Это решение не работает, если ячейка A1 содержит строку длиной более 255 символов. Это приводит к #VALUE!ошибке

hawbsl
источник
2
Если мой столбец A содержит 200 значений ссылок, возможно ли написать формулу, которая бы создала гиперссылку на 200 значений и переписать ее в столбце A, вместо создания нового столбца?
Разработчик
1
Превосходно! Лучше всего то, что этот шаг настолько прост, что я могу передавать файлы CSV непрофессионалу, и он может легко генерировать из него URL-адреса.
Кардин Ли Дж
3
Чтобы сделать так, чтобы это был один столбец, просто скопируйте столбец гиперссылки и вставьте значение в любой столбец, который вы хотите сохранить.
Майк
1
Это должен быть принят ответ, так как он решает большинство вариантов использования.
Джей
Скройте необработанный столбец, который не является гиперссылкой
RickAndMSFT,
94

Создайте макрос как здесь:

В меню «Инструменты» в Microsoft Excel укажите «Макрос» и выберите «Редактор Visual Basic». В меню Вставка выберите Модуль. Скопируйте и вставьте этот код в окно кода модуля. Он автоматически назовет себя HyperAdd.

Sub HyperAdd()

    'Converts each text hyperlink selected into a working hyperlink

    For Each xCell In Selection
        ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=xCell.Formula
    Next xCell

End Sub

Когда вы закончите вставку макроса, нажмите «Закрыть» и вернитесь в Microsoft Excel в меню «Файл».

Затем выберите нужные ячейки, нажмите макрос и нажмите «Выполнить».

ПРИМЕЧАНИЕ НЕ выбирайте весь столбец! Выберите ТОЛЬКО те ячейки, которые вы хотите изменить на кликабельные ссылки, иначе вы попадете в бесконечный цикл и вам придется перезапустить Excel! Готово!

Стив Кинэн
источник
2
Добавьте Dim xCell As Range, если вы используете явную опцию. +1 за решение, которое изменяет ячейку (как было предложено) и предоставляя код, который это делает.
Praesagus
Это работало хорошо для меня, при условии, что у меня было около 50 000 ссылок в электронной таблице, которая нуждалась в обновлении, и мне приходилось делать это частями, иначе Excel потерпит крах.
ATek
2
Чтобы сделать адреса электронной почты гиперссылками, измените Address:=xCell.FormulaнаAddress:="mailto:" & xCell.Formula
Дэнни Беккет
Кроме того , для URL - адресов , не начиная с http://это должно быть добавлено (используйте выше изменения, но суррогат mailto:с http://Иначе гиперссылок не работают..
Дэнни Beckett
1
Прекрасно работает. FYI Excel 2016 имеет ограничение в 66 530 гиперссылок на один лист, поэтому ожидайте возможную ошибку времени выполнения, если вы превысите ее. support.office.com/en-us/article/…
Кристофер О'Брайен,
24

Вот способ, который я нашел. Я использую Excel 2011 на Mac. Если в столбце B содержатся текстовые значения, которые вы хотите использовать в качестве гиперссылок, поместите эту формулу в ячейку C1 (или D1 или что-то еще, если это свободный столбец): =HYPERLINK(B1,B1) это вставит гиперссылку с местоположение в качестве текста ссылки и «понятное имя» в качестве текста ссылки. Если у вас есть другой столбец с понятным именем для каждой ссылки, вы также можете использовать его. Затем вы можете скрыть текстовый столбец, если не хотите его видеть.

Если у вас есть список идентификаторов чего-либо, и URL-адреса были все http://website.com/folder/ID, такие как:

A1  | B1
101 | http://website.com/folder/101
102 | http://website.com/folder/102
103 | http://website.com/folder/103
104 | http://website.com/folder/104

Вы можете использовать что-то вроде, =HYPERLINK("http://website.com/folder/"&A1,A1)и вам не понадобится список URL-адресов. Это было моей ситуацией и работало хорошо.

Согласно этому сообщению: http://excelhints.com/2007/06/12/hyperlink-formula-in-excel/ этот метод будет работать и в Excel 2007.

Marty
источник
Работает в Windows, Excel 2013 и является отличной альтернативой дополнительному столбцу.
mdisibio
К вашему сведению, для Open Office вышеприведенное
выдало
19

Хорошо, вот простое решение, но я просто не могу понять, как заставить Excel оценить столбец URL как гиперссылки в натуральном выражении.

  1. Создать формулу, ="=hyperlink(""" & A1 & """)"
  2. Тянуть вниз
  3. Скопировать новый столбец формулы
  4. Вставить специальные значения только в исходный столбец
  5. Выделите столбец, нажмите Ctrl- H(чтобы заменить), найдите и замените =на =(каким-то образом вынуждает пересматривать ячейки).
  6. Клетки теперь должны быть кликабельными как гиперссылки. Если вы хотите синий / подчеркнутый стиль, просто выделите все ячейки и выберите стиль гиперссылки.

Один только стиль гиперссылки не преобразуется в кликабельные ссылки, и в диалоговом окне «Вставить гиперссылку» не может использоваться текст в качестве адреса для большого количества ячеек. Помимо этого, F2и Enterчерез все клетки будет делать это, но это утомительно для многих клеток.

Indolent Coder
источник
3
Просто сделайте = (HYPERLINK (НЕПОСРЕДСТВЕННО (АДРЕС (ROW (), COLUMN () + 1)), "Dress" & ROW ())) это проще
Ник Тернер
Согласитесь, это лучший ответ, который не требует ведения двух столбцов.
матовый
+1 Для замены '=' -> '='. это то, что я ищу. Спасибо.
Разработчик
18

Довольно простой способ для довольно коротких списков:

  1. Дважды щелкните на поле, где находится URL
  2. Войти

У вас есть ваша ссылка;)

user3210679
источник
14
Я использую F2, чтобы редактировать ячейку, затем многократно вводить, чтобы быстро просмотреть мой список. Просто. Спасибо!
Брайан Эш
1
Этот плюс комментарий о F2 привел меня к колонке из 160 гиперссылок примерно за минуту. Так что да, это путь, если столбец достаточно короткий.
Тревор Браун
Я не думаю, что это может быть решением для того, чтобы конвертировать сотни людей.
Ma3x
У меня 287 000 строк. Плач.
thejohnbackes
12

Если добавление дополнительного столбца с гиперссылками не является вариантом, альтернативой является использование внешнего редактора для включения вашей гиперссылки в =hyperlink("и "), чтобы получить=hyperlink("originalCellContent")

Если у вас Notepad ++, этот рецепт можно использовать для полуавтоматического выполнения этой операции:

  • Скопируйте столбец адресов в Блокнот ++
  • Удерживая ALT- SHIFTнажмите, передвиньте курсор из верхнего левого угла в нижний левый угол и введите =hyperlink(". Это добавляет =hyperlink("в начале каждой записи.
  • Откройте меню «Заменить» ( Ctrl- H), активируйте регулярные выражения ( ALT- G) и замените $(конец строки) на "\). Это добавляет закрытую кавычку и закрывающую скобку (которую необходимо экранировать \при активации регулярных выражений) в конце каждой строки.
  • Вставьте данные обратно в Excel. На практике просто скопируйте данные и выберите первую ячейку столбца, в который вы хотите поместить данные.
Антонио
источник
Отличный ответ. Это единственный путь, если вы не хотите никаких дополнительных столбцов. Решение может использоваться для любого типа редактора или языка программирования (не только Notepad ++). В Excel 2010 это создает интерактивные ссылки, но мне пришлось вручную применить «стиль форматирования гиперссылок», чтобы они действительно выглядели как ссылки (т.е. подчеркнуты синим цветом).
Абсурд
Примечание: для этого не требуется блокнот ++ ... просто для наглядности вы можете сделать это с помощью любого текстового редактора. Хитрость заключается в том, чтобы просто обернуть каждую строку =hyperlink("__linecontentgoeshere__")... для тех, кто может быть введен в заблуждение упоминанием notepad ++
dreftymac
@dreftymac Это дает рецепт того, как сделать это почти автоматически, не редактируя построчно. Он использует возможности Notepad ++ для расширения курсора на несколько строк и поддержки регулярных выражений; другие редакторы могут иметь аналогичные функции. В начале своего ответа я уточняю, каков будет ожидаемый результат, который должен избавить от недоразумений.
Антонио
1
// Я проясняю в начале своего ответа, каков предполагаемый результат // Спасибо за то, что подчеркнули вашу точку зрения. Я не критиковал ваш ответ, просто сделал его немного более понятным для тех, кто может ничего не знать о Notepad ++, и, возможно, не понимает, что это просто один из многих текстовых редакторов, которые могут делать подобные вещи. Я знаю, вы понимаете это, но не все понимают.
19
1
Вы также можете составить формулу в Excel с помощью ="=HYPERLINK("""&A1&""")"(при условии, что URL-адрес в A1). Затем скопируйте результат в Блокнот и обратно в Excel (возможно, есть лучший способ). Теперь у вас есть рабочие гиперссылки - вы можете применить к ним стиль гиперссылки на панели «Стили», чтобы получить синий подчеркнутый вид. Если у вас есть ярлык ссылки в столбце B, вы можете использовать эту формулу: ="=HYPERLINK("""&A1&""";"""&B1&""")".
Йонаш Янчаржик
7

Этот метод работает для меня, используя функцию гиперссылки:

=HYPERLINK("http://"&B10,B10)

Где B10находится ячейка, содержащая текстовую версию URL (в этом примере).

Wasabihound
источник
= HYPERLINK ("http: //" & B10, B10) не работал в моем Excel 2013, однако = HYPERLINK ("http: //" & B10) DID работал.
agibsen
5

С Excel 2007 в Windows я нашел эти шаги наиболее простыми;

  1. Выберите ячейки с неактивными URL
  2. копия
  3. Вставить как гиперссылку
Clumzoid
источник
1
В более поздней версии (я использую Office 2011) это не работает - я просто получаю гиперссылку на файл рабочего стола (этот), а не на URL, указанный в ячейке. например, файл: // localhost / Users / xxxx / Desktop / Blahblahblah Имя файла.xlsx - Sheet1! A2
Даннид
4

Я шокировал, что Excel не делал этого автоматически, поэтому вот мое решение, которое, я надеюсь, будет полезно для других

  1. Скопировать весь столбец в буфер обмена
  2. Откройте это на вашем Chrome или Firefox

data:text/html,<button onclick="document.write(document.body.querySelector('textarea').value.split('\n').map(x => '<a href=\'' + x + '\'>' + x + '</a>').join('<br>'))">Linkify</button><br><textarea></textarea>

  1. Вставьте столбец на страницу, которую вы только что открыли в браузере, и нажмите «Linkify».
  2. Скопируйте результат с вкладки в столбец в Excel

Вместо второго шага вы можете использовать приведенную ниже страницу, сначала нажмите «Выполнить фрагмент кода», а затем вставьте в нее столбец.

<button onclick="document.write(document.body.querySelector('textarea').value.split('\n').map(x => '<a href=\'' + x + '\'>' + x + '</a>').join('<br>'))">Linkify</button><br><textarea></textarea>

Эбрахим Бягови
источник
3

Для меня я просто скопировал весь столбец с URL-адресами в текстовом формате в другое приложение (например, Evernote), и когда они были вставлены туда, они стали ссылками, а затем я просто скопировал их обратно в Excel.

Единственное, что вам нужно, это убедиться, что данные, которые вы копируете, совпадают с остальными столбцами.

AbuMariam
источник
2

Попробуй это:

= HYPERLINK ("mailto:" & A1, A1)

Замените А1 своим текстом ячейки адреса электронной почты.

Компьютер Emergency Tech
источник
2

Я обнаружил, что ни один из методов здесь не работает, если гиперссылка не включает http: //, поскольку они связаны с локальными местоположениями.

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

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

Sub HyperAdd()
Dim CellsWithSpaces As String
    'Converts each text hyperlink selected into a working hyperlink
    Application.ScreenUpdating = False
    Dim NotPresent As Integer
    NotPresent = 0

    For Each xCell In Selection
        xCell.Formula = Trim(xCell.Formula)
        If xCell.Formula = "" Or InStr(xCell.Formula, ".") = NotPresent Then
        'Do nothing if the cell is blank or contains no dots
        Else
            If InStr(xCell.Formula, " ") <> 0 Then
                CellsWithSpaces = CellsWithSpaces & ", " & Replace(xCell.Address, "$", "")
                 GoTo Nextxcell
            End If

            If InStr(xCell.Formula, "http") <> 0 Then
                Hyperstring = Trim(xCell.Formula)
            Else
                Hyperstring = "http://" & Trim(xCell.Formula)
            End If

            ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=Hyperstring

        End If
        i = i + 1
        If i = 10000 Then Exit Sub
Nextxcell:
      Next xCell
    If Not CellsWithSpaces = "" Then
        MsgBox ("Please remove spaces from the following cells:" & CellsWithSpaces)
    End If
Application.ScreenUpdating = True
End Sub
Кассиопея
источник
1
Спасибо, это работало для адресов электронной почты в документе Excel - я попробовал несколько других методов, но это был тот, который работал, хотя мне нужно было изменить http: // на mailto:
bawpie
2
  1. Создайте временный новый столбец гиперссылок, используя формулу = HYPERLINK ()
  2. Скопируйте этот столбец в Microsoft Word (копировать в буфер обмена только после запуска Word).
  3. Скопируйте все в новом документе Word (Ctrl + A, затем Ctrl + C).
  4. Вставьте в Excel, заменив исходный столбец текста. Удалите временный столбец с формулой.
Vin
источник
1

Вы можете вставить формулу =HYPERLINK(<your_cell>,<your_cell>)в соседнюю ячейку и перетащить ее вниз до конца. Это даст вам столбец со всеми ссылками. Теперь вы можете выбрать исходный столбец, щелкнув заголовок, щелкните правой кнопкой мыши и выберите Hide.

th3an0maly
источник
1

Поместите URL-адреса в таблицу HTML, загрузите страницу HTML в браузер, скопируйте содержимое этой страницы и вставьте в Excel. На этом этапе URL-адреса сохраняются как активные ссылки.

Решение было предложено на http://answers.microsoft.com/en-us/mac/forum/macoffice2008-macexcel/how-to-copy-and-paste-to-mac-excel-2008-a-list-of/ c5fa2890-acf5-461d-adb5-32480855e11e (Джим Гордон Мак MVP) [ http://answers.microsoft.com/en-us/profile/75a2b744-a259-49bb-8eb1-7db61dae9e78]

Я обнаружил, что это сработало.

У меня были эти URL:

https://twitter.com/keeseter/status/578350771235872768/photo/1 https://instagram.com/p/ys5ASPCDEV/ https://igcdn-photos-ga.akamaihd.net/hphotos-ak-xfa1/t51 .2885-15 / 10881854_329617847240910_1814142151_n.jpg https://twitter.com/ranadotson/status/539485028712189952/photo/1 https://instagram.com/p/0OgdvyxMhW/ https://instagram.com/p/1nynT

Я поместил их в HTML-файл (links.html) следующим образом:

<table>
<tr><td><a href="https://twitter.com/keeseter/status/578350771235872768/photo/1">https://twitter.com/keeseter/status/578350771235872768/photo/1</a></td></tr>
<tr><td><a href="https://instagram.com/p/ys5ASPCDEV/">https://instagram.com/p/ys5ASPCDEV/</a></td></tr>
<tr><td><a href="https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpg">https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpg</a></td></tr>
<tr><td><a href="https://twitter.com/ranadotson/status/539485028712189952/photo/1">https://twitter.com/ranadotson/status/539485028712189952/photo/1</a></td></tr>
<tr><td><a href="https://instagram.com/p/0OgdvyxMhW/">https://instagram.com/p/0OgdvyxMhW/</a></td></tr>
</table>

Затем я загрузил links.html в свой браузер, скопировал, вставил в Excel, и ссылки были активными.

Михаил Ософский
источник
1

Спасибо Кассиопея за код. Я изменил его код для работы с локальными адресами и внес небольшие изменения в его условия. Я удалил следующие условия:

  1. Изменить http:/наfile:///
  2. Удалены все типы пробелов
  3. Изменено условие диапазона ячеек 10k до 100k

Sub HyperAddForLocalLinks()
Dim CellsWithSpaces As String
    'Converts each text hyperlink selected into a working hyperlink
    Application.ScreenUpdating = False
    Dim NotPresent As Integer
    NotPresent = 0

    For Each xCell In Selection
        xCell.Formula = Trim(xCell.Formula)
            If InStr(xCell.Formula, "file:///") <> 0 Then
                Hyperstring = Trim(xCell.Formula)
            Else
                Hyperstring = "file:///" & Trim(xCell.Formula)
            End If

            ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=Hyperstring

        i = i + 1
        If i = 100000 Then Exit Sub
Nextxcell:
      Next xCell
    Application.ScreenUpdating = True
End Sub
Junaid
источник
Работая отлично, я сделал ~ 7000 гиперссылок всего за пару секунд. :) Спасибо, Кассиопея.
Джунаид
почему вы определили NotPresent?
Штеффен Роллер
Я только что скопировал приведенный выше код из предыдущего ответа Кассиопеи. И изменил это настолько, насколько я понял это. Так что я не знаю, нужен ли NotPresent или нет. Но мой модифицированный код работает отлично.
Джунаид
1

У меня был список номеров, которые вводятся в URL, которые я хочу хотлинкинг. Например, у меня есть столбец A с номерами вопросов (т.е. 2595692, 135171), и я хочу превратить эти номера вопросов в горячие ссылки и отображать только номера вопросов.

Поэтому я создал текстовую гиперссылку, указывающую на столбец A, и скопировал ее для всех моих номеров вопросов:

= "= HYPERLINK (" & "" "HTTP" "и" ":" "" & "" & "&" & "" "// stackoverflow.com/questions/"&A1&""""&","&A1& ")"

Затем я копирую - вставляю значение этого столбца текстовых гиперссылок в другой столбец.

Вы получите столбец текста, который выглядит следующим образом:

= HYPERLINK ( "HTTP" и ":" & "// stackoverflow.com/questions/2595692",2595692)

Затем я выбрал эти вставленные элементы и запустил следующий макрос F2Entry:

Sub F2Enter()
Dim cell As Range
Application.Calculation = xlCalculationManual
For Each cell In Selection
    cell.Activate
    cell = Trim(cell)
Next cell
Application.Calculation = xlCalculationAutomatic
EndSub

Затем я удалил столбец ввода текста и столбец А.

Я закончил с одним столбцом номеров вопросов с горячей ссылкой:

2595692

135171

и т.п.

ура

РКО
источник
0

Если вы копируете текстовое содержимое в новый столбец и используете:

=HYPERLINK("http://"&B10,B10) 

на вашей оригинальной колонке. Затем используйте $для столбца, чтобы он выглядел так:

=HYPERLINK("http://"&$B10,$B10)

Это единственный способ, которым я работал в Excel 2010 в Windows 7. Вы можете скопировать формулу.

vanesaqy
источник
0

Для тех, кто приземлится здесь с помощью Excel 2016, вы можете просто выделить столбец и щелкнуть Hyperlinkвкладку, расположенную на Homeленте в Stylesполе.

введите описание изображения здесь

Изменить: К сожалению, это только обновляет стиль ячейки, а не функцию.

jGroot
источник
3
Это только дает стили ячеек, а не делает URL кликабельным.
stenlytw
1
Да, думал, что это отличное решение, но оно не работает. Это действительно сбивает с толку, что это так сложно.
Дан
Я только что проверил это, и вы оба правы; Я был одурачен клеточными стилями.
jGroot
@jGroot - это именно то, что я хотел, просто стиль без какой-либо функциональности.
Радж Раджешвар Сингх Ратхор
-1

Самый простой способ здесь

  • Выделить весь столбец
  • нажмите «вставить»
  • нажмите «Гиперссылка»
  • нажмите «место в этом документе»
  • нажмите ОК
  • вот и все
Момин Ага Хан
источник
Это не работает, если ссылка не на что-то внутри документа.
Эрика
Я согласен с тем, что этот вопрос был сформулирован плохо, но предполагаемая цель - это сам текст.
Джейсон К.
-3

Самый простой способ в Excel 2010: выделите столбец с текстом URL, затем выберите стиль гиперссылки на вкладке «Главная». Все URL-адреса в столбце теперь являются гиперссылками.

Также двойной щелчок по каждой ячейке в конце текста URL и добавление пробела или просто ввода также приведет к появлению гиперссылки. Подобно тому, как вы должны создавать URL-ссылки в электронных письмах MS Outlook.

Рон
источник
4
Они не гиперссылки, они похожи на гиперссылки. Это просто стиль.
Эрика
-5

Существует очень простой способ сделать это. Создайте одну гиперссылку, а затем используйте инструмент «Редактор форматов», чтобы скопировать форматирование. Это создаст гиперссылку для каждого элемента.

Даниил
источник
8
Это не работает, просто копирует форматирование, чтобы они выглядели как гиперссылки.
reergymerej