Как исправить гиперссылку в excel


Download Article


Download Article

This wikiHow teaches you how to fix broken hyperlinks in your Excel workbook. A hyperlink is a clickable link that takes you to another location, which can be another cell, another workbook, or even a website. If clicking a hyperlink in your Excel file doesn’t take you to the correct location, there are several things you can try.

  1. Image titled Fix a Hyperlink in Excel Step 1

    1

    Open the workbook with the broken hyperlink(s). You can usually open the file in Excel by double-clicking its filename.

  2. Image titled Fix a Hyperlink in Excel Step 2

    2

    Right-click the hyperlink and select Edit Hyperlink. This displays all of the details about the hyperlink in a handy dialog box.[1]

    Advertisement

  3. Image titled Fix a Hyperlink in Excel Step 3

    3

    Verify the link location. If, when you click a hyperlink, you see an error that says «Reference isn’t valid» (or any other error indicating that a file can’t be opened), it’s usually because the file, website, or cell you’re linking to was renamed or moved.[2]
    Check the following:

    • First, check what type of document you’re linking to—if you’re linking to a website or another file, Existing File or Web Page should be selected.
    • If you’re linking to a website, copy the URL from the «Address» bar at the bottom and paste it into a web browser. Can you access the site that way? If not, the broken link is due to an incorrect URL. If so, go to the end of the URL in the address bar in Excel and press the spacebar—this could correct the issue.
    • If you’re linking to a particular file, make sure the file is in the correct location. If the file has been moved or renamed, the hyperlink will not work unless you either update the path in the hyperlink or place the file back in its original location.
    • If you’re linking to another cell in the same file, Place in This Document should be highlighted in the left panel. Make sure the cell reference is on a sheet that exists.
    • Click OK when you’re finished to save your changes.
  4. Image titled Fix a Hyperlink in Excel Step 4

    4

    Double-check the syntax if you’re using the HYPERLINK function. If you inserted a hyperlink into your workbook using a formula that includes the HYPERLINK function, the syntax may be incorrect. Make sure the syntax of your formula matches the following format:

    • Linking to a sheet in the same workbook: =HYPERLINK("#Sheet2!A1", "Sheet2")
    • Clicking the cell containing this formula would take you cell A1 on the sheet called Sheet2.
      • If the worksheet’s name includes a non-alphanumerical character or a space, you must surround the worksheet name with single quote marks.[3]
        =HYPERLINK("#'Worksheet Name'!A1", "Worksheet Name").
      • If you’re linking to a particular cell on the same sheet, the formula should look something like this: =HYPERLINK("#A1", "Go to cell A1").
    • Linking to a different workbook: =HYPERLINK("D:wikikHowBook2.xlsx", "Book2")
      • Clicking this cell would open the file Book2.xlsx located at D:wikiHow.
      • To go to a particular sheet in the remote workbook, you’d use =HYPERLINK("[D:wikiHowBook2.xlsx]Sheet2!A1", "Book2") (note the square brackets).
      • If the remote workbook is on a network drive, use =HYPERLINK("[\SERVERNAMEUSERNAMEBook2.xlsx]Sheet2!A1", "Book2")
    • Linking to a website: =HYPERLINK("https://www.wikiHow.com","Go to wikiHow.com")
  5. Advertisement

  1. Image titled Fix a Hyperlink in Excel Step 5

    1

    Open the workbook with the broken hyperlink(s). You can usually open the file in Excel by double-clicking its filename.

    • Use this method if you’ve already checked your hyperlinks for accuracy and the links are still not working. Excel checks your hyperlinks when you save the file—if the hyperlinks are not working at the moment you save (for example, if you save when you’re not connected to the internet), it may disable those links.
  2. Image titled Fix a Hyperlink in Excel Step 6

    2

    Click the File menu. It’s at the top-left corner.

  3. Image titled Fix a Hyperlink in Excel Step 7

    3

    Click Options on the menu. Your Excel options will appear.

  4. Image titled Fix a Hyperlink in Excel Step 8

    4

    Click the Advanced tab. It’s in the left panel.[4]

  5. Image titled Fix a Hyperlink in Excel Step 9

    5

    Scroll down and click the Web Options button. It’s in the «General» section.

  6. Image titled Fix a Hyperlink in Excel Step 10

    6

    Click the Files tab. It’s the third tab at the top of the window.

  7. Image titled Fix a Hyperlink in Excel Step 11

    7

    Remove the checkmark from «Update links on save.» It’s in the top section.

  8. Image titled Fix a Hyperlink in Excel Step 12

    8

    Click OK until you’ve exited all Options windows. Now that you’ve disabled this option, Excel will no longer check hyperlinks when you save the file.

  9. Advertisement

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Thanks for submitting a tip for review!

References

About This Article

Article SummaryX

1. Right-click the hyperlink and select Edit Hyperlink.
2. Verify that the link locations are up-to-date.
3. Double-check the syntax if you’re using the HYPERLINK function.
4. Disable «Update Links on Save» in Excel.

Did this summary help you?

Thanks to all authors for creating a page that has been read 17,873 times.

Is this article up to date?

Хитрости »

30 Май 2011              158063 просмотров


Как массово изменить гиперссылки?

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

Существуют ситуации, когда на листе есть много гиперссылок(если еще на знакомы с гиперссылками — Что такое гиперссылка?) на различные папки или интернет ресурсы. И иногда случаются ситуации когда адреса этих гиперссылок надо поменять. Как правило это происходит если либо домен сменился, либо на сервере добавилась директория и эти изменения надо отразить в гиперссылках, либо все просто было перемещено в другую папку. Для примера возьмем такие исходные данные: надо заменить текст ссылки .excel_vba на текст excel-vba.
Прежде чем начать замену необходимо еще определить каким способом установлена гиперссылка. Если установлена через формулу ГИПЕРССЫЛКА(HYPERLINK), то все просто:

  1. выделяем диапазон с гиперссылками;
  2. жмем Ctrl+H.
    • Найти: .excel_vba
    • Заменить на: excel-vba
    • Жмем кнопочку «Параметры» и устанавливаем Область поискаФормулы и снимаем галочку «Ячейка целиком«
  3. Жмем «Заменить все«

Теперь адреса ссылок должны поменяться.
Все гораздо сложнее, если гиперссылки были созданы через стандартное меню: правый клик мыши на ячейке — Гиперссылка. Тут фокус с заменой через Ctrl+H не пройдет. В таких случаях придется прибегнуть к помощи VBA(Visual Basic for Applications) или как еще называют эти коды — макросы. Текст такого макроса:

Sub Replace_Hyperlink()
    Dim rCell As Range, rRange As Range, sWhatRep As String, sRep As String
    On Error Resume Next
    Set rRange = Application.InputBox("Укажите диапазон для замены", "Выбор данных", Type:=8)
    If rRange Is Nothing Then Exit Sub
    sWhatRep = InputBox("Что меняем?", "Ввод данных", ".excel_vba")
    sRep = InputBox("На что меняем?", "Ввод данных", "excel-vba")
    If sWhatRep = "" Then Exit Sub
    If sRep = "" Then
        If MsgBox("Хотите заменить " & sWhatRep & " на пусто?", vbCritical + vbYesNo, "Предупреждение") = vbNo Then Exit Sub
    End If
    Application.ScreenUpdating = 0
    For Each rCell In rRange
        If rCell.Hyperlinks.Count > 0 Then
            If rCell.Hyperlinks(1).Address = rCell.Value Then
                rCell = Replace(rCell.Value, sWhatRep, sRep)
            End If
            If rCell.Hyperlinks(1).Address <> "" Then
                rCell.Hyperlinks(1).Address = Replace(rCell.Hyperlinks(1).Address, sWhatRep, sRep)
            End If
            If rCell.Hyperlinks(1).SubAddress <> "" Then
                rCell.Hyperlinks(1).SubAddress = Replace(rCell.Hyperlinks(1).SubAddress, sWhatRep, sRep)
            End If
        End If
    Next rCell
    Application.ScreenUpdating = 1
End Sub

Как все это использовать:

  • создаем стандартный модуль и помещаем в него код макроса выше
  • жмем Alt+F11 и выбираем макрос Replace_Hyperlink (или создаем кнопку для вызова макроса на листе)
  • в первом диалоговом окне указываем в каком диапазоне надо найти гиперссылки и заменить в них адрес
  • во втором диалоговом окне указываем какой текст заменить
  • в третьем диалоговом окне указываем на что заменить указанный в первом окне текст

Примерно так же можно заменить гиперссылки в объектах на листе(например, картинках и кнопках):

Sub Replace_Hyperlink_inShape()
    Dim oSh As Shape, sWhatRep As String, sRep As String
    Dim s As String
 
    sWhatRep = InputBox("Что меняем?", "Ввод данных", "www.excel-vba.com")
    sRep = InputBox("На что меняем?", "Ввод данных", "www.excel-vba.ru")
 
    On Error Resume Next
    For Each oSh In ActiveSheet.Shapes
        s = ""
        s = oSh.Hyperlink.Address
        If s <> "" Then
            oSh.Hyperlink.Address = Replace(oSh.Hyperlink.Address, sWhatRep, sRep)
        End If
    Next
End Sub

Данные код работает почти так же как и предыдущий:

  • создаем стандартный модуль и помещаем в него код макроса выше
  • жмем Alt+F11 и выбираем макрос Replace_Hyperlink_inShape (или создаем кнопку для вызова макроса на листе)
  • в первом диалоговом окне указываем какой текст заменить
  • во втором диалоговом окне на что заменить указанный в первом окне текст

Гиперссылки всех объектов на листе будут изменены. Если у объекта нет гиперссылки — объект будет пропущен.

 
Чтобы

заменить гиперссылки только в выделенных объектах

необходимо строку

For Each oSh In ActiveSheet.Shapes

заменить на такую:

For Each oSh In Selection.ShapeRange

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

Скачать пример

  Пример замены гиперссылок.xls (58,0 KiB, 11 454 скачиваний)

Так же см.:
Что такое гиперссылка?


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Макрос для исправление повреждённых гиперссылок во всей книге:

Sub ЗаменаИспорченныхГиперссылок()
    On Error Resume Next
    Dim hl As Hyperlink, oldString As String, newString As String, sh As Worksheet
    ' часть гиперссылки, подлежащая замене
    oldString = "C:Documents and settingsБухгалтерApplication data"
    ' на что заменяем
    newString = "\адрес_сервера"
    For Each sh In ActiveWorkbook.Worksheets    ' перебираем все листы в активной книге
        For Each hl In sh.Hyperlinks    ' перебираем все гиперссылки на листе
            If hl.Address Like oldString & "*" Then
                hl.Address = Replace(hl.Address, oldString, newString)
            End If
        Next
    Next sh
End Sub

Макрос может быть полезен для замены абсолютных гиперссылок на относительные, а также помогает вернуть работоспособность ссылок после случайного сохранения файла Excel в другой папке (на другом диске).

Если нужно заменить несколько вариантов неверных ссылок, код будет таким:

Sub ЗаменаИспорченныхГиперссылок_2()
    On Error Resume Next
    Dim hl As Hyperlink, newString$, sh As Worksheet
 
    ' часть гиперссылки, подлежащая замене
    oldString1 = "C:Documents and settingsБухгалтер1"
    oldString2 = "C:Documents and settingsБухгалтер2"
 
    ' на что заменяем
    newString = "\адрес_сервера"
 
    For Each sh In ActiveWorkbook.Worksheets    ' перебираем все листы в активной книге
        For Each hl In sh.Hyperlinks    ' перебираем все гиперссылки на листе
            If hl.Address Like oldString1 & "*" Then  hl.Address = Replace(hl.Address, oldString1, newString)
            If hl.Address Like oldString2 & "*" Then  hl.Address = Replace(hl.Address, oldString2, newString)            
        Next
    Next sh
 
End Sub

Расширенная версия этого макроса учитывает, что слеш в ссылках может быть как прямым, так и обратным, а также выводит информацию о количестве произведённых замен, и список ссылок из файла, которые не были обработаны (к которым замены не были применены)

Sub ЗаменаИспорченныхГиперссылок2()
    On Error Resume Next
    Dim hl As Hyperlink, oldString$, newString$, sh As Worksheet, n&, msg$, coll As New Collection, Item
 
    ' часть гиперссылки, подлежащая замене
    oldString = "../../AppData/Roaming/Microsoft/Excel/"
    ' на что заменяем
    newString = "C:UsersAdminDesktopОТЧЁТЫ ВСЕ"
 
    For Each sh In ActiveWorkbook.Worksheets    ' перебираем все листы в активной книге
        For Each hl In sh.Hyperlinks    ' перебираем все гиперссылки на листе
            ' Debug.Print hl.Address
            If (hl.Address Like oldString & "*") Or (hl.Address Like Replace(oldString, "/", "") & "*") Then
                hl.Address = Replace(hl.Address, oldString, newString, , , vbTextCompare)
                hl.Address = Replace(hl.Address, Replace(oldString, "/", ""), newString, , , vbTextCompare)
                n = n + 1
            Else
                If InStr(1, hl.Address, "mailto", vbTextCompare) = 0 Then coll.Add hl.Address, UCase(hl.Address)
            End If
        Next
    Next sh
 
    For Each Item In coll
        msg$ = msg$ & Item & vbNewLine
    Next
 
    MsgBox "Заменено гиперссылок: " & n & IIf(Len(msg$), vbNewLine & vbNewLine & _
                                                         "Также в файле найдены ссылки на:" & vbNewLine & msg$, ""), vbInformation
End Sub

Проблемы

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

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

  • Некоторые гиперссылки могут быть изменены таким образом, чтобы они ссылались на неверные адреса. Например, гиперссылка, которая ранее ссылалась на одну веб-страницу, теперь может ссылаться на другую веб-страницу.

Причина

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

Решение

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

  • Если в Excel была удалена гиперссылка из ячейки, выделите ее и в меню Вставка выберите пункт Гиперссылка . Введите правильный адрес в поле адрес и нажмите кнопку ОК.Примечание. Если в Excel 2007 гиперссылка удалена из ячейки, выделите ее, а затем в группе » ссылки » на вкладке » Вставка » нажмите кнопку » Гиперссылка «. В диалоговом окне Вставка гиперссылки в поле адрес введите правильный адрес и нажмите кнопку ОК. -или-

  • Если гиперссылка ссылается на неверный адрес, щелкните ячейку правой кнопкой мыши и выберите команду Изменить гиперссылку. В диалоговом окне изменение гиперссылки измените адрес в поле адрес и нажмите кнопку ОК.

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе «Применяется к».

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Всем привет! Как-то на работе столкнулся на работе с интересной задачей. Во время работе Excel выдал ошибку и закрыл окно. После попытки открыть файла оказалось, что все гиперссылки в документе изменили часть своего пути.

Решение

  1. Открываем VBA (Visual Basic for Applications) через Alt+F11
  2. В окне Project-VBAProject (левой верхнее) правой кнопкой мыши делаем Insert — Module
  3. В появившемся большом окне вставляем код макроса вида с нашими ссылками (первая ссылка — что нужно поменять, вторая — на что нужно поменять)
Sub Hyper()
For i = 1 To ActiveSheet.Hyperlinks.Count
    ActiveSheet.Hyperlinks(i).Address = Replace(ActiveSheet.Hyperlinks(i).Address, "../../../AppData/Roaming/Microsoft/Excel/", "UsersUserDesktopФирмаДоговора")
Next
End Sub

      4. Закрываем VBA.

       5. Через Сервис — Макрос — Макросы ( или по Alt+F8) выбираем макрос и нажимаем «Выполнить».

Пути гиперссылкок будут заменены. Проверено — работает!

Спасибо за помощь http://forum.ixbt.com/topic.cgi?id=23:33826

Posted in WINDOWS and tagged excel.

Понравилась статья? Поделить с друзьями:
  • Как найти свои украденный айфоне
  • Как найти ядро земли
  • Как найти все вложения mail
  • Как найти логово крысы етг
  • Как составить письмо арендатору