2014-12-31 4 views
0

Я хочу, чтобы ячейка в электронной таблице Excel связывалась с HTML-документом, используя URL-адрес с идентификатором фрагмента (т. Е. Hash-mark, за которым следует идентификатор, который является значением атрибут name в элементе привязки: «MyDoc.html # MyFragmentIdentifier»).Excel гиперссылка на html с идентификатором фрагмента не работает

Я пробовал использовать диалог Insert Hyperlink и функцию HYPERLINK. В обоих случаях идентификатор фрагмента игнорируется; документ HTML открывается вверху, но не прокручивается до именованного идентификатора. Фактически, идентификатор не отображается в адресной строке веб-браузера - просто адрес страницы - поэтому я предполагаю, что идентификатор фрагмента никогда не передается в браузер в первую очередь.

Я установил свой браузер по умолчанию для Chrome, IE и Firefox, но все это не так - то же самое поведение во всех случаях.

Есть ли способ заставить Excel правильно открыть браузер?

ответ

0

Когда вы создаете гиперссылку с помощью щелчка правой кнопкой мыши, Hyperlink вы устанавливаете «дружественное имя» в Text to display:, а затем URL-адрес вниз на страницу в Address:. Наконец, вы нажимаете Закладка и дайте Вставить гиперссылку мастер разрешит адрес и предоставит вам список закладок.

Мастер Вставки Гиперссылки имеет проблемы с разрешением закладок с некоторых страниц; в частности динамический контент или контент за именем пользователя/паролем. В этом случае связь может быть создана в VBA через параметры .Hyperlink.AddAddress:=<url> и .SubAddress:=<page bookmark.

+0

Спасибо, Jeeped. Я использую Ruby и win32ole, и поэтому я уже создаю ссылки программно. Я изменил код, чтобы использовать свойство SubAddress (вместо адреса «все-в-одном»), которое является более чистым, но не изменило поведение. Ссылка в Excel правильная, но html-документ открывается еще вверху. –

+0

@BurdetteLamar - Что такое URl и 'name = ', что вы пытаетесь ударить? – Jeeped

+0

URI указывает на файл html, локальный для электронной таблицы, поэтому вы не сможете его проверить, если это то, что вы имеете в виду. В основном это C: \ Users \ Burdette.Lamar \ Documents \ # . –

0

Похоже, что проблема с гиперссылками, содержащими «#», возникает, когда Excel создает гиперссылки, но мне удалось обойти это, изменив существующую гиперссылку, содержащую хэшмарк, в объектной модели Excel. Сделав это автоматически, попробуйте это:

Sub Make_Column_A_into_hyperlinks_hashmarkworkaround() 

'Column "A" contains the text of links to some files. 
'This subroutine will turn those cells into Excel hyperlinks... 
'...and then correct the hyperlinks in case Excel misinterpreted 
'a # mark which had originally occurred in the filename. 
'Because I'm using selection.End(xlDown).Select to find the complete list, 
'this program does not tolerate any blanks in the "A" column list. 
'Note that I don't add a hyperlink in Row 1. 

Dim A As Object 
Dim lngRow As Long 
Dim Height As Long 

With ActiveSheet 
.Cells(1, 1).Select 
Selection.End(xlDown).Select 
Height = Selection.Row 

For lngRow = 2 To Height 
.Hyperlinks.Add Anchor:=ActiveSheet.Cells(lngRow, 2), Address:=Chr(34) & ActiveSheet.Cells(lngRow, 1).Value & Chr(34), TextToDisplay:="Open", _ 
ScreenTip:=Chr(34) & ActiveSheet.Cells(lngRow, 1).Value & Chr(34) 
Next 

For Each A In ActiveSheet.Hyperlinks 

If A.ScreenTip <> "" Then 
If InStr(1, A.ScreenTip, "#") <> 0 Then 
A.Address = Mid(A.ScreenTip, 2, Len(A.ScreenTip) - 2) 
End If 
End If 

Next 
End With 

End Sub 
Смежные вопросы