Долго открываются гиперссылки в excel

Иногда, когда вы нажимаете на любую ссылку в программе Microsoft Office, такой как Excel или Word, открытие занимает много времени. Если вы столкнулись с этой проблемой, то этот пост сможет вам помочь.

Гиперссылки Word или Excel открываются медленно

Если гиперссылки Microsoft Office Word или Excel открываются медленно, при обычных обстоятельствах или когда они указывают на Microsoft AD FS Server, попробуйте следующие предложения:

  1. Параметры открытия Word (или Excel)
  2. Нажмите Advanced
  3. Найдите раздел «Сохранить»
  4. Выберите Копируйте удаленно сохраненные файлы на свой компьютер флажок
  5. Нажмите ОК и выйдите.

Гиперссылки Word или Excel медленно открывают сайты AD FS

Служба федерации Active Directory (AD FS) обеспечивает функцию единого входа, которая предлагает клиентам оптимизированный пользовательский интерфейс при доступе к веб-приложениям организации, однако иногда, когда вы пытаетесь получить доступ к таким сайтам через гиперссылки в приложениях Microsoft Office как Word или Excel, сайты открываются не менее 60 секунд.

Эта проблема в основном возникает по двум причинам. Во-первых, ADFS не приспособлен для обработки запроса HEAD, который он получает от приложений Word или Excel. Во-вторых, хотя AD FS пытается ответить, возвращая сообщение об ошибке, протокол AD FS отклоняет его, поскольку ответ HEAD не может содержать тело запроса. Чтобы исправить это, попробуйте следующее:

  1. Откройте редактор реестра Windows.
  2. Перейдите к Офис 16.0 Common Identity.
  3. Добавить DWORD: ЗаменитьHLinkHEADRequestWithGET.
  4. Измените значение на 1 (шестнадцатеричное для базы).
  5. Закройте и выйдите из редактора реестра.
  6. Перезагрузите компьютер.

Откройте редактор реестра Windows. Для этого нажмите комбинацию клавиш Win + R, чтобы открыть значок ‘Пробег‘ диалоговое окно.

Тип regedit в пустом поле поля и нажмите ‘Войти‘.

Когда откроется редактор реестра, перейдите по следующему адресу пути —

HKEY_CURRENT_USERSOFTWAREMicrosoftOffice16.0CommonIdentity.

редактор реестра

Создайте новый раздел реестра — DWORD — ЗаменитьHLinkHEADRequestWithGET.

значение dword редактора реестра изменено

Дважды щелкните запись и измените ее значение с 0 по умолчанию на1‘.

По завершении закройте редактор реестра и выйдите.

Перезагрузите компьютер. Ваша проблема должна быть решена, и приложения Office, такие как Excel, Word, не должны долго открывать сайты AD FS.

значение dword редактора реестра изменено

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

У меня отчет весит 4029 Кб (не так много), но когда появились гиперссылки на другие листы, вес документа на много не вырос но открывается теперь долго и проблема с открытием в другим форматах.  В отчете есть ссылки на три документа: =ГИПЕРССЫЛКА(«[закупки_отеч_010817.xlsx]Лист1!1:1″;»на закупки»).
И есть три столбца с гиперссылками построчно: =ЕСЛИ(ЕПУСТО(A8);»»;ГИПЕРССЫЛКА(«#’\Rcp123…..отеч 150817[закупки_отеч_010817.xlsx]Лист1′!»&ПОИСКПОЗ($A8;[закупки_отеч_010817.xlsx]Лист1!$B$1:$B$65536;0)&»:»&ПОИСКПОЗ($A8;[закупки_отеч_010817.xlsx]Лист1!$B$1:$B$65536;0);»>>»)).
Можно ли как то упростить гиперссылку или что можно сделать для ускорения открытия отчета?

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

А Вам действительно нужно искать данные во ВСЕХ 65 тысячах с лишним  строк столбца B? Может посмотреть в сторону макросов?

Согласие есть продукт при полном непротивлении сторон.

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

Sanja, Было первоначально прописано просто В:В, чтобы не протягивать, а так нужно искать среди 8 тыс строк. А в сторону макросов…имеете ввиду как то макросами заменить формулу с гиперссылкой? я к сожалению не сильна в макросах.

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#4

15.08.2017 13:42:09

Цитата
enot7 написал: как то макросами заменить формулу с гиперссылкой?

Да. Если допустимо их применение, то приложите файл-пример (НЕ 8000 строк!) до 100 кб, и покажите в нем Как есть — Как надо

Согласие есть продукт при полном непротивлении сторон.

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

Sanja, в примере маленькая часть отчета. В столбце Н как раз находятся эти гиперссылки, таких столбцов у меня три (ссылки на три документа), а в этих документах такие же ссылки с возвратом на отчет, думаю они не нужны здесь.

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

Напишите пожалуйста словами, что должно происходить если в ячейке, допустим, A4 НЕпусто и пользователь кликает по ячейке H4. Какие данные в каких файлах ищутся и куда осуществляется переход

Согласие есть продукт при полном непротивлении сторон.

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

Sanja, при нажатии в файле отчета ячейки с ссылкой происходит переход на другой документ (например, закупки), где выделяется вся строка с этим же кодом как в столбце А4.  

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

А в этом ‘другом’ документе лист один? Или его тоже как-то определить нужно?

Согласие есть продукт при полном непротивлении сторон.

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

Sanja, в других документах по одному листу: Лист1

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

Еще уточнения.
Эти документы расположены на сетевом диске? Они открыты в момент перехода на них?  

Согласие есть продукт при полном непротивлении сторон.

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

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

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

#13

16.08.2017 07:18:03

Sanja, срабатывает переход но просто на документ, а не на нужную строчку с кодом.

Ускорить простановку гиперссылок

ovechkin1973

Дата: Суббота, 19.01.2019, 17:57 |
Сообщение № 1

Группа: Проверенные

Ранг: Обитатель

Сообщений: 429


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

Все привет! С Крещением ВСЕХ! Есть желание ускорить код по простановке гиперссылок. Код не мой, с миру по нитке (что то с форума, а что то товарищ написал). Но если в файле с 10000-ю строками и в двух столбцах есть названия файлов, по которым в корневой папке, где сохранен сам файл нужно найти файл и проставить гиперссылки — работа Эксель зависает часов на 7.
В этой теме уважаемый RAN написал, что есть решение, которое работает на порядки быстрее. Показывал эту информацию своему товарищу — он к сожалению решить проблему по ускорению работы кода не смог.
Надежда у меня только на помощь этого форума. Файл прикладываю, единственно пришлось удалить строки в нем до приемлемого размера файла. Хотя думаю в этом случаю файл нужен только для просмотра кода. Все равно папок с файлами нет. Может это нужная инфомация — в корневом каталоге, где сохранен этот файл пока полтора десятка папок разной «глубины». Т.е. в каждой папке есть другие папки, а в них еще и так далее. Но «глубже» 5-ти папок нет (не знаю, как грамотно написать про это). Может это является причиной долгой работы кода.


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

 

Ответить

krosav4ig

Дата: Суббота, 19.01.2019, 19:02 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 2346


Репутация:

989

±

Замечаний:
0% ±


Excel 2007,2010,2013

Здравствуйте. И вас с праздником!
пробуйте так [vba]

Код

Public Sub creategyperlinks(ByVal sheetname As String, ByVal colname2 As String, ByVal colname As String, ByVal startrow As Integer, ByVal path As String)
    Dim sMask As Variant, sFile As Variant, c As Range, Addr$      ‘объявление переменных
    Dim iMaxRowCount1 As Integer

        iMaxRowCount1 = getrowCounts(colname2, startrow)

         For Each sMask In Array(«*.pdf», «*.7z»)
        For Each sFile In FilenamesCollection(path, sMask, 5)
            With Sheets(sheetname).Range(colname & startrow & «:» & colname & iMaxRowCount1)
                sName = Mid(sFile, InStrRev(sFile, «») + 1, Len(sFile))
                Set c = Range.Find(Mid(sName, 1, InStrRev(sName, «.») — 1), , xlValues, xlWhole, , , False, , False)
                If Not c Is Nothing Then
                    Addr = c.Address
                    Do
                        If c.Hyperlinks.Count = 0 Then
                            c.Hyperlinks.Add c, sFile, , , c.Text
                        End If
                        Set r = .FindNext(c)
                    Loop While Not c Is Nothing And c.Address <> Addr
                End If
            End With
        Next sFile
    Next sMask
End Sub

[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

 

Ответить

ovechkin1973

Дата: Суббота, 19.01.2019, 22:02 |
Сообщение № 3

Группа: Проверенные

Ранг: Обитатель

Сообщений: 429


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

Здравствуйте. И вас с праздником!
пробуйте так

Попробую. После отпишусь обязательно!


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

 

Ответить

RAN

Дата: Воскресенье, 20.01.2019, 03:25 |
Сообщение № 4

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

[vba]

Код

Option Explicit

Sub МЯУ()
    Dim FSO As Object
    Dim FolderNamesCollection As New Collection     ‘ создаём пустую коллекцию
    Dim FolderPath$
    Dim FileTypes(), x
    Dim n$, s$
    Dim i&, j&, lr&
    Dim t!: t = Timer
    Const SearchDeep& = 5
    FileTypes = Array(«.txt», «.rar»)
    FolderPath = «D:!XXXX»

    Set FSO = CreateObject(«Scripting.FileSystemObject»)    ‘ создаём экземпляр FileSystemObject
    GetAllFolderNamesUsingFSO FolderPath, FSO, FolderNamesCollection, SearchDeep  ‘ поиск
    With Sheets(«хранение»)
        Application.ScreenUpdating = False
        n = «K»: GoSub HYPER
        n = «I»: GoSub HYPER
        Debug.Print Format(Timer — t, «0.0000»)
        Application.ScreenUpdating = True
        Exit Sub
HYPER:
        lr = .Cells(.Rows.Count, n).End(xlUp).Row
        For j = 1 To lr
            For i = 0 To UBound(FileTypes)
                For Each x In FolderNamesCollection
                    s = Dir(x & «» & CStr(.Cells(j, n).Value) & FileTypes(i))
                    If s <> «» Then
                        If .Cells(j, n).Hyperlinks.Count = 0 Then
                            .Hyperlinks.Add .Cells(j, n), x & «» & s
                            GoTo NextCell
                        End If
                    End If
                Next
            Next
NextCell:
        Next
        Return
    End With
End Sub

Function GetAllFolderNamesUsingFSO(ByVal FolderPath As String, ByRef FSO, _
                    ByRef FolderNamesCollection As Collection, ByVal SearchDeep As Long)
‘ перебирает все файлы и подпапки в папке FolderPath, используя объект FSO
‘ перебор папок осуществляется в том случае, если SearchDeep > 1
‘ добавляет пути найденных файлов в коллекцию FileNamesColl
    Dim curfold As Object, sfol As Object

        On Error Resume Next: Set curfold = FSO.GetFolder(FolderPath)
    If Not curfold Is Nothing Then    ‘ если удалось получить доступ к папке
        SearchDeep = SearchDeep — 1    ‘ уменьшаем глубину поиска в подпапках
        If SearchDeep Then    ‘ если надо искать глубже
            For Each sfol In curfold.SubFolders    ‘ ‘ перебираем все подпапки в папке FolderPath
                FolderNamesCollection.Add sfol.path
                GetAllFolderNamesUsingFSO sfol.path, FSO, FolderNamesCollection, SearchDeep
            Next
        End If
        Set curfold = Nothing    ‘ очищаем переменные
    End If
End Function

[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RANВоскресенье, 20.01.2019, 11:28

 

Ответить

ovechkin1973

Дата: Понедельник, 21.01.2019, 19:13 |
Сообщение № 5

Группа: Проверенные

Ранг: Обитатель

Сообщений: 429


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

Уважаемый krosav4ig, ваш код мне товарищ приспособил к моему файлу. Сейчас гиперссылки проставляются от 5 до 15 минут (не 7 часов, как ранее). 5 минут дома, 15 минут на работе, когда файлы в сети хранятся.

Файл уважаемого RAN, мне пообещали в ближайшее время протестировать на этом же файле для сравнения производительности.


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

 

Ответить

If you open an Excel spreadsheet containing external hyperlinks, when you click the link, Excel will check that the link is valid (i.e. doesn’t return a 404 error) before actually opening it in the browser.

This is utterly maddening for me and I cannot for the life of me figure out why the developers could have ever fathomed that this would be a remotely good idea.

The side-effect is that hyperlinks take a longer time to open, and/or cannot be opened at all if Excel’s connection to your network is blocked (e.g. by a firewall).

I have tried disabling all the options in the «Trust Center» that relate to links but nothing has helped.

How can I turn off link checking in Excel forever?

Ben N's user avatar

Ben N

39.6k17 gold badges137 silver badges176 bronze badges

asked Mar 8, 2013 at 0:58

WackGet's user avatar

3

A registry setting can change this behavior and force Excel to simply launch URL’s in the default browser. There could be security implications, so be sure to read the following article carefully and decide if it’s the right thing for you to do.

http://support.microsoft.com/kb/218153#FixItForMeAlways

I ran the «Fix it for me» application after several unsuccessful attempts to manually make the registry edits.

Now my hyperlinks launch in the default browser, without the pre-check, regardless if it’s clicked by the user, or programmatically launched in VBA.

Ben N's user avatar

Ben N

39.6k17 gold badges137 silver badges176 bronze badges

answered Apr 25, 2013 at 18:08

John Sanders's user avatar

5

In excel 2003, the ForceShellExecute=1 regedit solution does not work.
My workaround is calling the links directly from the shell using a macro. The below macro is right now creating 2 types of links from the current row depending on which column I click. This can of course be changed to check if there is a link in the cell you’re selecting. Also selecting with right mouse button works in case there is an active link in the cell.

Option Explicit

Private Declare Function ShellExecute _
  Lib "shell32.dll" Alias "ShellExecuteA" ( _
  ByVal hWnd As Long, _
  ByVal Operation As String, _
  ByVal Filename As String, _
  Optional ByVal Parameters As String, _
  Optional ByVal Directory As String, _
  Optional ByVal WindowStyle As Long = vbMinimizedFocus _
  ) As Long

Public Sub OpenUrl(link As String)
    Dim lSuccess As Long
    lSuccess = ShellExecute(0, "Open", link)
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim c As Range: Set c = Selection
    If c.Count <> 1 Then Exit Sub
        
    Dim y As Integer: Let y = c.Row
    If y < 11 Then Exit Sub
    
    Dim name As String: Let name = Cells(y, 3).Value
    If name = "" Then Exit Sub
    
    Dim x As Integer: Let x = c.Column
    Dim link As String: Let link = ""
    If x = 10 Then Let link = "prefix of link type 1"
    If x = 11 Then Let link = "prefix of link type 2"
    If link = "" Then Exit Sub
    
    link = link & name
    OpenUrl link
End Sub

answered May 25, 2021 at 20:00

peter's user avatar

peterpeter

1131 silver badge6 bronze badges

For more people struggling: I made a small solution for this, it has also a hosted variant.

answered Jul 16, 2021 at 10:06

Thomas's user avatar

ThomasThomas

2693 silver badges16 bronze badges

Excel finds out what the link points to / returns — another excel file, a word document, a web page etc and then opens that in the respective application or itself. This is desired functionality.

answered Mar 8, 2013 at 1:49

Brian's user avatar

BrianBrian

8,91622 silver badges37 bronze badges

2

RRS feed

  • Remove From My Forums
  • Вопрос

  • В документе куча гиперссылок на файлы(сетевой диск), путь теперь по ним не доступен. ОТкрывается минут 20. Как отключить проверку гиперссылок?

Все ответы

  • Перефразируйте Ваш вопрос, что бы стала более понятной ваша проблема.

    Гиперссылки открываются только тогда, когда по ним щёлкнешь.

    Дополнительно проверьте настройки Антивирусной программы, допускаю, что все открываемые из вашего документа гиперссылки, проверяются им на предмет отсутствия вирусов.


    Да, я Жук, три пары лапок и фасеточные глаза :))

  • Антивируса нет.

    Документ — в нем гиперссылки вида \server…

    путь \server… Больше не доступен. Документ открывается минут 20. Если сделать путь доступным, всё ок, открывается как положено.

    Как еще перефразировать не очень понимаю?

    Проверял на разных ПК, офис 2013

    • Изменено

      7 октября 2016 г. 11:23

  • Ответ на Ваш вопрос, в самом вашем вопросе, цитата: «…
    путь \server… Больше не доступен
    . Документ открывается минут 20.
    Если сделать путь доступным, всё ок, открывается как положено.».


    Да, я Жук, три пары лапок и фасеточные глаза :))

  • Ответ на Ваш вопрос, в самом вашем вопросе, цитата: «…
    путь \server… Больше не доступен
    . Документ открывается минут 20.
    Если сделать путь доступным, всё ок, открывается как положено.».


    Да, я Жук, три пары лапок и фасеточные глаза :))

    Прочитайте мой вопрос еще разок)

  • Ответ на Ваш вопрос, в самом вашем вопросе, цитата: «…
    путь \server… Больше не доступен
    . Документ открывается минут 20.
    Если сделать путь доступным, всё ок, открывается как положено.».


    Да, я Жук, три пары лапок и фасеточные глаза :))

    Прочитайте мой вопрос еще разок)

    Добрый день.

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

    Так же попробуйте сетевые локальные ресурсы добавить в качестве доверенных в настройках офиса (настройки безопасность надежные расположения)

    По результатам напишите


    Я не волшебник, я только учусь
    MCP, MCTS. Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий.
    Блог IT Инженера и
    IT Reviews

    Да, он откроется нормально если заменить ссылки. Я это уже проверил, заменив  в документе путь ссылок на новый(актуальный).

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

    Открывать сотни документов каждый по 20-40 минут, для того что бы сменить ссылки-это очень печально.

    • Изменено
      Daniil Sedov
      10 октября 2016 г. 13:48

  • Или вручную или собирайте макрос, для пакетной обработки файлов, другого пути не существует.


    Да, я Жук, три пары лапок и фасеточные глаза :))

  • Или вручную или собирайте макрос, для пакетной обработки файлов, другого пути не существует.


    Да, я Жук, три пары лапок и фасеточные глаза :))

    Расскажите или на примере покажите как же обработать макросом файл не открывая его. Я не очень себе это представляю. 

    Так или иначе кодом или руками вы его откроете. или я не прав?

    • Изменено
      Daniil Sedov
      10 октября 2016 г. 14:16

  • В качестве примера, внимательно изучите аналогичный вопрос «Пакетная обработка файлов«.


    Да, я Жук, три пары лапок и фасеточные глаза :))

  • В качестве примера, внимательно изучите аналогичный вопрос «Пакетная обработка файлов«.


    Да, я Жук, три пары лапок и фасеточные глаза :))

    Файл открывается перед обработкой так же как я его открою руками. Это не выход и никак не решает проблему.

  • Что бы выполнить какие либо действия со значениями в файле, его необходимо открыть, записать исправления и закрыть с сохранением исправлений.


    Да, я Жук, три пары лапок и фасеточные глаза :))

  • Интересный метод помощи, говорил об этом ранее а вы все равно мне предложили эту ссылку)

Понравилась статья? Поделить с друзьями:
  • Документы word скачать 2019
  • Долго открывается файл excel по сети
  • Документы word с расширением docx
  • Долго открывается файл excel 2019
  • Документы word печатает pdf нет