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


275

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

Ответы:


314

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

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

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


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.


Работает в Windows, Excel 2013 и является отличной альтернативой дополнительному столбцу.
mdisibio

К вашему сведению, для Open Office вышеприведенное
выдало

19

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

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

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


3
Просто сделайте = (HYPERLINK (НЕПОСРЕДСТВЕННО (АДРЕС (ROW (), COLUMN () + 1)), "Dress" & ROW ())) это проще
Ник Тернер

Согласитесь, это лучший ответ, который не требует ведения двух столбцов.
матовый

+1 Для замены '=' -> '='. это то, что я ищу. Спасибо.
Разработчик

18

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

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

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


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 (в этом примере).


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

5

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

  1. Выберите ячейки с неактивными URL
  2. копия
  3. Вставить как гиперссылку

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.

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



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, заменив исходный столбец текста. Удалите временный столбец с формулой.

1

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


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

Работая отлично, я сделал ~ 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. Вы можете скопировать формулу.


0

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

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

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


3
Это только дает стили ячеек, а не делает URL кликабельным.
stenlytw

1
Да, думал, что это отличное решение, но оно не работает. Это действительно сбивает с толку, что это так сложно.
Дан

Я только что проверил это, и вы оба правы; Я был одурачен клеточными стилями.
jGroot

@jGroot - это именно то, что я хотел, просто стиль без какой-либо функциональности.
Радж Раджешвар Сингх Ратхор

-1

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

  • Выделить весь столбец
  • нажмите «вставить»
  • нажмите «Гиперссылка»
  • нажмите «место в этом документе»
  • нажмите ОК
  • вот и все

Это не работает, если ссылка не на что-то внутри документа.
Эрика

Я согласен с тем, что этот вопрос был сформулирован плохо, но предполагаемая цель - это сам текст.
Джейсон К.

-3

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

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


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

-5

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


8
Это не работает, просто копирует форматирование, чтобы они выглядели как гиперссылки.
reergymerej
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.