3

Я пытаюсь создать ячейку, которая будет извлекать гиперссылку, основываясь на том, что заполнено в другой ячейке 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 ответ1

2
=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))

A2 = Google

Это не сработает. Единственное, что вы сможете сделать, это использовать VBA, чтобы перейти на страницу и собрать информацию, или использовать что-то вроде -

A1 = Google
A2 = Searching Website
A3 = Hyperlink(Concatenate("https://www.",A1,".com",A2))

A3 = Поиск по сайту


Чтобы получить титул через 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)

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