Як перетворити стовпець текстових URL-адрес в активні гіперпосилання в Excel?


275

У мене стовпець у excel, у якому я маю всі значення URL-адреси веб-сайту. Моє запитання: я хочу перетворити значення URL на активні посилання. У цій колонці близько 200 записів із різними URL-адресами у всіх клітинках. Чи є спосіб я створити активні гіперпосилання на всі комірки, не записуючи макрос.

Відповіді:


314

Якщо ви не хочете робити макрос і поки ви не заперечуєте проти додаткового стовпця, просто створіть новий стовпчик поруч із стовпцем URL-адрес.

У новому стовпці введіть формулу =HYPERLINK(A1)(замінюючи А1 на будь-яку клітинку, яка вас цікавить). Потім скопіюйте формулу вниз до решти 200 записів.

ПРИМІТКА. Це рішення не працює, якщо комірка A1 містить рядок, довжиною більше 255 символів. Це призводить до #VALUE!помилки


2
Якщо мій стовпець A містить 200 значень посилань, чи можна написати формулу, яка би гіперпосилала значення 200 та переписала її у стовпчик А, а не створювала новий стовпець?
розробник

1
Відмінно! Найкраще, що цей крок настільки простий, що я можу передавати файли CSV лайперсону, і він може легко генерувати URL-адреси з нього.
Cardin Lee JH

3
Щоб зробити це таким чином, це один стовпець, просто скопіюйте стовпець гіперпосилання та "вставте значення" в той стовпець, який ви хочете зберегти.
Майк

1
На це слід прийняти відповідь, оскільки це вирішує більшість випадків використання.
Джей

Сховати необроблений стовпець, який не є гіперпосиланням
RickAndMSFT,

94

Створіть макрос як тут:

У меню Інструменти в Microsoft Excel наведіть курсор на Макрос і натисніть Visual Basic Editor. У меню Вставка натисніть Модуль. Скопіюйте та вставте цей код у вікно коду модуля. Він автоматично назвать себе 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 би вийшов з ладу.
АТек

2
Щоб внести електронні адреси до гіперпосилань, перейдіть Address:=xCell.FormulaнаAddress:="mailto:" & xCell.Formula
Danny Beckett

Також для URL-адрес, які не починаються з http://цього, потрібно додати (використовуйте вищезазначені зміни, але замініть mailto:їх http://. Інакше гіперпосилання не працюють.
Danny Beckett

1
Чудово працює. FYI Excel 2016 має обмеження в 66 530 гіперпосилань на робочому аркуші, тому очікуйте на можливу помилку під час запуску, якщо ви її перевищите. support.office.com/en-us/article/…
Крістофер О'Брайен

24

Ось такий спосіб я знайшов. Я на Mac, що використовує Excel 2011. Якщо у стовпці B були текстові значення, якими ви хочете бути гіперпосиланнями, введіть цю формулу в комірку С1 (або 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

FYI, для Open Office вищесказана помилка, але здається, що = HYPERLINK (C1) працює, якщо задано лише один параметр
tonypdmtr

19

Гаразд, ось таке рішення, яке я не маю, але я не можу зрозуміти, як змусити Excel оцінити стовпець URL-адрес як гіперпосилання масово.

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

Сам стиль гіперпосилання не перетвориться на посилання, які можна натиснути, і діалогове вікно "Вставити гіперпосилання" не може використовувати текст як адресу для масивів клітин. Крім цього,F2 і Enterчерез усі клітини це зробили б, але це дуже нудно для багатьох клітин.


3
Просто зробіть = (HYPERLINK (НЕПРАВНА (АДРЕСА (ROW (), COLUMN () + 1)), "Dress" та ROW ())) легше
Nick Turner

Погоджено, це найкраща відповідь, яка не потребує підтримки 2 стовпців.
мат

+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__")... для тих, кого може ввести в оману згадка про блокнот ++
dreftymac

@dreftymac Це дає рецепт, як це зробити майже автоматично, не редагуючи по черзі. Він використовує можливість Notepad ++ розширювати курсор на кілька рядків та підтримувати регулярні вирази; інші редактори можуть мати подібні функції. Я уточнюю на початку своєї відповіді, який саме намічений результат, який повинен позбутися від непорозуміння.
Антоніо

1
// Я уточнюю на початку своєї відповіді, який є запланований результат // Дякую, що наголосили на вашій точці. Я не критикував вашу відповідь, просто зробив це більш зрозумілим для тих, хто, можливо, нічого не знає про Notepad ++, і, можливо, не усвідомлює, що це просто один із багатьох текстових редакторів, який може зробити подібне. Я знаю, ви це розумієте, але це не всі.
dreftymac

1
Ви також можете скласти формулу в Excel з ="=HYPERLINK("""&A1&""")"(якщо URL-адреса знаходиться в A1). Потім скопіюйте результат у Блокнот і поверніться до Excel (можливо, буде кращий спосіб). Тепер у вас є робочі гіперпосилання - ви можете застосувати до них стиль гіперпосилання з панелі «Стилі», щоб отримати синій підкреслений вигляд. Якщо у вас є ярлик посилання в стовпці B, ви можете використовувати цю формулу: ="=HYPERLINK("""&A1&""";"""&B1&""")".
Jonáš Jančařík

7

Цей метод працює для мене за допомогою функції гіперпосилання:

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

Де B10знаходиться клітинка, що містить текстову версію URL-адреси (у цьому прикладі).


= HYPERLINK ("http: //" & B10, B10) не працював у моєму Excel 2013, однак = HYPERLINK ("http: //" & B10) DID працював.
агібсен

5

З програмою Excel 2007 у Windows я вважав ці кроки найпростішими;

  1. Виберіть клітинки з неактивними URL-адресами
  2. Скопіювати
  3. Вставити як гіперпосилання

1
У більш пізній версії (я використовую Office 2011) це не працює - я просто отримую гіперпосилання на файл робочого столу (цей), а не на URL-адресу, показану в комірці. наприклад, файл: // localhost / Користувачі / xxxx / Настільний / Blahblahblah Назва файлу.xlsx - Sheet1! A2
Dannid

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. Вставте стовпець на щойно відкриту сторінку у браузері та натисніть «Зв’язати»
  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: //, оскільки вони посилалися на локальні локації.

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

Він буде працювати на клітинках у вибраному діапазоні, лише якщо вони містять крапку та не мають пробілів. Він працюватиме лише до 10 000 комірок.

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. Скопіюйте все у новий слово документ (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 від (Jim Gordon Mac 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/1nynTiiLSb

Я розміщую їх у 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?
Steffen Roller

Я щойно скопіював код з попередньої відповіді Кассіопеї. І модифікував це настільки, наскільки я зрозумів. Тому я не знаю, чи потрібен NotPresent чи ні. Але мій модифікований код працює чудово.
Джунайд

1

У мене був список номерів, які надходять у URL-адресу, на який я хочу гарячу посилання. Наприклад, у мене стовпчик А з номерами питань (тобто 2595692, 135171), і я хочу перетворити ці номери запитів у гарячі посилання та відобразити лише номери запитань.

Тож я створив текстовий гіперпосилання, що вказує на стовпець А, і скопіював його на всі мої номери запитань:

= "= 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
Так, думав, що це чудове рішення, але це не працює. Мене справді бентежить, що це важко.
Dan

Я щойно це перевірив, і ви двоє правильні; Мене обдурили стилі клітин.
jGroot

@jGroot - Це саме те, що я хотів просто в стилі без будь-якої функціональності.
Raj Rajeshwar Singh Rathore

-1

Найпростіший шлях тут

  • Виділіть всю колонку
  • натисніть "вставити" "
  • натисніть "" Гіперпосилання ""
  • натисніть "" місце в цьому документі ""
  • натисніть ОК
  • це все

Це не спрацьовує, якщо тільки посилання є на щось в документі.
Еріка

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

-3

Найпростіший спосіб в Excel 2010: Виберіть стовпчик з текстом URL, а потім виберіть Стиль гіперпосилання на вкладці Домашня сторінка. Усі URL-адреси в стовпці тепер є гіперпосиланнями.

Також подвійне клацання кожної комірки в кінці тексту URL-адреси та додавання порожнього або просто введення також призведе до гіперпосилання. Подібно до способів створення URL-посилань в електронних листах MS Outlook.


4
Вони не гіперпосилання, вони схожі на гіперпосилання. Це просто стайлінг.
Еріка

-5

Існує дуже простий спосіб зробити це. Створіть одне гіперпосилання, а потім скористайтеся програмою Format Painter для копіювання форматування. Це створить гіперпосилання для кожного елемента.


8
Це не працює, воно просто копіює форматування, щоб вони виглядали як гіперпосилання.
reergymerej
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.