
Я пытаюсь создать ячейку, которая будет вытягивать гиперссылку на основе того, что заполнено в другой ячейке Excel. У меня работает часть гиперссылки, но я хотел бы иметь лучшую метку для гиперссылки, чем идентификатор, который она использует для получения веб-страницы, или полный веб-адрес. Я думал, что будет проще всего попытаться вытянуть заголовок веб-страницы. Это возможно?
Может быть, чтобы немного помочь, я сейчас использую эту функцию для извлечения веб-адреса
=IF(LEN(Excel Cell Value)>0,HYPERLINK(CONCATENATE("First part of the web address",(Excel Cell Value),"Second part of the web address"),Excel Cell Value),"")
решение1
=IF(LEN(Excel Cell Value)>0,HYPERLINK(CONCATENATE("First part of the web address",(Excel Cell Value),"Second part of the web address"),Excel Cell Value),"")
Я этого не понимаю. Попробую объяснить -
If(Len(cell value)>0) - if the cell isn't empty, do TRUE
TRUE - Hyperlink(Concatenate(first, (cell value), second), (cell value)
FALSE - ""
Теперь давайте посмотрим, как работает гиперссылка.
Hyperlink(link location, friendly name)
Для тебя это
link location = concatenate(first, value, second)
friendly name = value
Вы назначаете понятное имя значению ячейки. Так что, если у вас нет чего-то вроде -
A1 = Google
A2 = Hyperlink(Concatenate("https://www.",A1,".com",A1))
А2 =Google
Это не сработает. Единственное, что вы сможете сделать, это использовать VBA, чтобы выйти на страницу и собрать информацию, или использовать что-то вроде -
A1 = Google
A2 = Searching Website
A3 = Hyperlink(Concatenate("https://www.",A1,".com",A2))
А3 =Поиск на сайте
Чтобы получить заголовок через VBA -
Sub gettitle()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.navigate "http://superuser.com/"
While ie.busy
DoEvents
Wend
Dim title As String
title = ie.document.title
MsgBox (title)
End Sub
Итак, чтобы функция возвращала гиперссылку с заголовком, вам понадобится определяемая пользователем функция (UDF) -
Function GetTitle(site As Range) As String
Dim title As String
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.navigate site
While ie.busy
DoEvents
Wend
title = ie.document.title
ie.Quit
GetTitle = title
End Function
Это перейдет к целевой веб-странице и вернет заголовок. Итак, скажем, у вас есть веб-страница в ячейке A1
- теперь вам нужно вызвать вашу функцию для заголовка -
A2 = GetTitle(A1)
A3 = Hyperlink(A1,A2)