Як я можу створити гіперпосилання на конкретні розділи HTML-файлу в Excel?


8

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

Якщо я розміщую те саме посилання у HYPERLINKфункції в Excel, посилання просто відкриває веб-сторінку, обрізаючи #частину, і не прокручується до зазначеного розділу. Якщо я розміщую посилання на веб-сторінку з якорною частиною HYPERLINKфункції, вона, здається, працює коректно, тому http://посилання з #не обрізаються і все ще працюють.

Пошук Google повертає цю публікацію на форумі та кілька статей KB, у яких вказано, що хеш не можна використовувати в імені файлу в офісі, хоча це дійсний символ імені файлу. На цій же сторінці зазначено, що це було вирішено в Excel 2010, але я використовую версію 2010 року, і, мабуть, це все ще є проблемою.

Чи існує вирішення цього питання? Я маю намір зв’язати кожен рядок з іншим розділом у цільовому файлі, і в ньому є 1000+ рядків, тож можливість розбити початковий файл HTML на декілька або генерувати окремі URL-адреси до кожного розділу та посилатись натомість створить безлад файли.


Я не можу зробити це відповіддю, оскільки зараз не можу перевірити, але ви протестували, використовуючи кодування, використовуючи "% 23" замість "#"
HTDutchy

Я щойно перевірив це, це, здається, не працює. Excel з'являється повідомлення про помилку "Не вдається відкрити вказаний файл"
JohnoBoy

@terdon 'Знак / ключ фунта' - дійсне ім’я для #персонажа, дивіться статтю WikiPedia , також
помічайте

@JohnoBoy, так і є. Я стою виправлений, вибачте. Не соромтеся скасувати мою редакцію.
тердон

Відповіді:


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

Сподіваємось, що це має зробити!


Я перегляну це питання і звіту назад, дякую
JohnoBoy

@JohnoBoy - це працювало для тебе?
Джонні Юта

Це було давно, я вважаю, що я повністю відмовився від гіперпосилань.
JohnoBoy

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
На жаль kamalam, оригінальний плакат хотів зробити це для файлів, розміщених локально на C: накопичувачі. Якщо ви спробуєте це знову, file://C:/це не допоможе . Прикро, бо було б набагато простіше, якби це спрацювало!
Andi Mohr

Крім того, це навіть не працює в Інтернеті
Геррат

-1

Якщо я добре розумію ваше запитання, то тут є фактична робота Source = Here WORKAROUND Щоб вирішити цю проблему, використовуйте один із наведених нижче методів. Спосіб 1

Перейменуйте файл із ім'ям, яке не містить знака фунта, а потім відредагуйте або відтворіть гіперпосилання.

Щоб отримати додаткові відомості про те, як перейменувати файл у Windows, перегляньте друковану документацію для Windows або Інтернет-довідку.

Щоб відредагувати гіперпосилання, виконайте наступні дії:

Для Office 2003 та новіших версій Office: Клацніть правою кнопкою миші клітинку, яка містить проблемне гіперпосилання. У меню швидкого доступу, яке з'явиться, вкажіть на гіперпосилання та натисніть "Змінити гіперпосилання". У полі Введіть файл або ім’я веб-сторінки введіть ім'я файлу, до якого ви посилаєтесь. Якщо ви не знаєте ім'я файлу, натисніть «Файл» та перейдіть до цього файлу. Натисніть кнопку ОК.

Для програм Office 2007 та Office 2010: Клацніть правою кнопкою миші клітинку, яка містить проблемне гіперпосилання, а потім вкажіть на пункт Змінити гіперпосилання. У полі Адреса введіть ім'я файлу, до якого ви посилаєтесь. Якщо ви не знаєте назви файлу, використовуйте інструменти пошуку в рядку Знайти ..., щоб знайти файл. Виберіть файл і натисніть кнопку ОК. Спосіб 2

Використовуйте команду Вставити як гіперпосилання:

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

Для програм Office 2007 та Office 2010: Відкрийте документ, до якого ви намагаєтесь зв’язатись. Це документ, який містить знак # в імені. Скопіюйте клітинку, з якою ви хочете зв’язатись. У своєму документі натисніть на клітинку, у якій потрібно відобразити гіперпосилання. На вкладці Домашня сторінка клацніть стрілку нижче Вставити у групі Буфер обміну, а потім натисніть Вставити як гіперпосилання

якщо ви використовуєте код VBA, цей рядок може бути корисним, я перевірив його. Він працює як в хромі, так і в firefox
ActiveSheet.Hyperlinks.Add Anchor: = Вибір, Адреса: = "C: \ path \ to \ your \ file.htm" , SubAddress: = "nameOfYourAnchor", TextToDisplay: = "текст для відображення")

тут nameOfYourAnchor без # Sym, наприклад, якщо посиланням є C: / Users / [User] / Desktop / Intel Core - Wikipedia, безкоштовна encyclopedia.htm # Core_i3 ваш код буде ( ActiveSheet.Hyperlinks.Add Anchor: = Вибір, Адреса: = "C: / Користувачі / Користувач / Настільний ПК / Intel Core - Вікіпедія, безкоштовна encyclopedia.htm", SubAddress: = "Core_i3", TextToDisplay: = "Текст для відображення" )
сподіваюся, що це допомогло.


Проблема полягає в тому, що файл не містить в своєму імені знак фунта. Я використовую знак фунта для посилання на певний розділ у файлі
JohnoBoy

2
подивіться на останні два абзаци.
камалам

@kamalam, на поверхні це дуже акуратне рішення. Однак я не можу змусити цей код працювати? Чи можете ви опублікувати повний підрозділ, який працює для вас?
Andi Mohr

-1

Наступне, як правило, працює в Windows 7 з Excel 2007. Файл розміщений у таблиці. Вміст комірки:

= HYPERLINK ("dump_faults_current_leg_bite.htm # BiteRec_000", "BITE запис 1/35")

Тут є деякі настільні ПК, які мають проблеми з цим посиланням, однак помилка "Неможливо відкрити вказаний файл".

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