8

У меня есть HTML-файл, который включает в себя якоря в нем. Я могу добраться до определенного раздела через браузер, если я укажу имя привязки, поэтому, когда я пишу
file://<html_path>/<html_file>.html#<anchor_name>
в адресной строке моего браузера файл открывается и прокручивается до нужного раздела.

Если я помещу ту же ссылку в функцию HYPERLINK в Excel, эта ссылка просто откроет веб-страницу, обрезает часть # и не перейдет к указанному разделу. Если я помещу ссылку на веб-страницу с якорной частью в функцию HYPERLINK , она, похоже, будет работать правильно, поэтому ссылки http:// с # не будут обрезаны и будут работать.

Поиск в Google возвращает это сообщение на форуме и несколько статей в КБ, в которых говорится, что хеш не может использоваться в имени файла в офисе, хотя это допустимый символ имени файла. На той же странице указано, что это было решено в Excel 2010, но я использую версию 2010, и это, по-видимому, все еще проблема.

Есть ли обходной путь к этому? Я намереваюсь связать каждую строку с отдельным разделом в целевом файле, и существует более 1000 строк, поэтому возможность разбить исходный HTML-файл на несколько или создать отдельные URL-адреса для каждого раздела и ссылку на них создаст беспорядок в файлы.

4 ответа4

2

Попробуй это. Для каждой строки вам понадобятся два столбца. Первый будет содержать название вашей закладки для каждой строки. Второй будет содержать гиперссылку, указывающую на себя.

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

Sub AddHyperlinksPointingToOwnCell()

   For i = 1 To 100

   Range("A" & i).Select
   ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
       "Sheet1!A" & i, TextToDisplay:="Click Here!"

   ActiveCell.Offset(1, 0).Select

   Next i

End Sub

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

Sub GoToBookmark()

    Dim ThisRow As Integer
    Dim ThisCol As Integer
    Dim BookmarkName As String

    ThisRow = ActiveCell.Row
    ThisCol = ActiveCell.Column
    BookmarkName = Cells(ThisRow, ThisCol - 1).Value
        'This is looking in the cell to the left for the bookmark name

    If BookmarkName = "" Then
        Exit Sub
    End If

    Shell "C:\Program Files\Internet Explorer\IEXPLORE.EXE " & _
        "C:\PathRoot\Folder\filename.html#" & BookmarkName & ", vbNormalFocus"

End Sub

Наконец, вам нужно добавить событие Worksheet_FollowHyperlink для листа, содержащего ваш список:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Run ("GoToBookmark")
End Sub

Надеюсь, это должно сделать это!

0

Вот еще одно решение для вас, если вы не хотите использовать кодирование VBA, вы все равно можете использовать функцию Excel "гиперссылка". Вот пошаговое руководство, чтобы сделать это.

онлайн-файл: Шаг 1: допустим, ваше имя файла: http://en.wikipedia.org/wiki/Intel_Core Шаг 2: теперь добавьте ваши имена якорей в A1: A4
Core_Duo
Core_Solo
Core_2_Duo
Core_i7
Шаг 3: в ячейку B2 введите это:

=HYPERLINK("http://en.wikipedia.org/wiki/Core_i3#"&A2,"A2")  

Шаг 4: нажмите и перетащите, чтобы применить к остальным ячейкам
Проверено работает !!!

-1

Если я хорошо понимаю ваш вопрос, то вот работа вокруг источника = Здесь ВРЕМЕННОЕ РЕШЕНИЕ Чтобы обойти эту проблему, используйте один из следующих методов. Способ 1

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

Для получения дополнительной информации о том, как переименовать файл в Windows, см. Печатную документацию Windows или интерактивную справку.

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

Для Office 2003 и более ранних версий Office: щелкните правой кнопкой мыши ячейку, содержащую гиперссылку проблемы. В появившемся контекстном меню укажите «Гиперссылка» и нажмите «Изменить гиперссылку». В поле Введите имя файла или веб-страницы введите имя файла, на который вы ссылаетесь. Если вы не знаете имя файла, нажмите «Файл» и найдите файл. Нажмите ОК.

Для программ Office 2007 и Office 2010: щелкните правой кнопкой мыши ячейку, содержащую гиперссылку проблемы, и выберите пункт Изменить гиперссылку. В поле Адрес введите имя файла, на который вы ссылаетесь. Если вы не знаете имя файла, используйте инструменты поиска в строке Искать в ..., чтобы найти файл. Выберите файл и нажмите кнопку ОК. Способ 2

Используйте команду Вставить как гиперссылку:

Для Office 2003 и более ранних версий: откройте документ, на который вы пытаетесь сослаться (который содержит знак # в имени). Скопируйте ячейку, на которую хотите сослаться. В документе в меню «Правка» выберите пункт «Вставить как гиперссылку».

Для программ Office 2007 и Office 2010: Откройте документ, на который вы пытаетесь связать. Это документ, который содержит знак # в имени. Скопируйте ячейку, на которую хотите сослаться. В своем документе щелкните ячейку, в которой вы хотите разместить гиперссылку. На вкладке «Главная страница» щелкните стрелку под «Вставить» в группе «Буфер обмена» и нажмите «Вставить как гиперссылку».

если вы используете код VBA, эта строка может помочь. Я протестировал ее. Она работает как в Chrome, так и в Firefox.
ActiveSheet.Гиперссылки.Добавить привязку:= выделение, адрес:= "C:\path\to\your\file.htm", SubAddress:= "nameOfYourAnchor", TextToDisplay:= "текст для отображения")

здесь nameOfYourAnchor без # Sym, например, если ваша ссылка C:/Users/[Пользователь]/Desktop/Intel Core - Википедия, бесплатная encyclopedia.htm # Core_i3, в которой будет ваш код (ActiveSheet.Гиперссылки.Добавить привязку:= Выбор, Адрес:= "C:/Пользователи /Пользователь /Рабочий стол /Intel Core - Википедия, бесплатный encyclopedia.htm", SubAddress:= "Core_i3", TextToDisplay:= "текст для отображения")
надеюсь, это помогло.

-1

Следующее обычно работает в Windows 7 с Excel 2007. Файл размещен вместе с электронной таблицей. Содержимое ячейки:

= HYPERLINK("dump_faults_current_leg_bite.htm # BiteRec_000", "BITE record 1/35")

Здесь есть некоторые настольные ПК, у которых возникают проблемы с этой ссылкой, однако появляется сообщение об ошибке "Не удается открыть указанный файл".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .