问题描述
如何通过og:image
VBA
从资源中获取excel 2007
例如,此URL:
https://www.bbc.com/reel/video/p08jgfdg/the-truth-about-christopher-columbus
解决方法
使用最新版本的Excel,您可以尝试以下操作:
Sub GetImageFromHead()
Dim MyUrl As String
MyUrl = "https://www.bbc.com/reel/video/p08jgfdg/the-truth-about-christopher-columbus"
'Required library reference: Microsoft XML v6.0
Dim HttpRequest As MSXML2.XMLHTTP60
Set HttpRequest = New MSXML2.XMLHTTP60
HttpRequest.Open "GET",MyUrl,False
HttpRequest.Send
Dim HtmlDoc As Object
Set HtmlDoc = CreateObject("htmlfile")
HtmlDoc.Write HttpRequest.responseText
'Required library reference: Microsoft HTML Object
Dim MetaCollection As MSHTML.IHTMLElementCollection
Set MetaCollection = HtmlDoc.getElementsByTagName("meta")
Dim HtmlElement As MSHTML.IHTMLElement
For Each HtmlElement In MetaCollection
If HtmlElement.getAttribute("property") = "og:image" Then
ActiveSheet.Pictures.Insert (HtmlElement.getAttribute("content"))
End If
Next
End Sub
但是由于您的问题是针对Excel 2007的,因此您必须像这样定义HttpRequest
:
'Required library reference: Microsoft XML v3.0 or v5.0
Dim HttpRequest As MSXML2.XMLHTTP
Set HttpRequest = New MSXML2.XMLHTTP
如果您想要一个仅将URL作为字符串返回的函数,则可以轻松地编辑Sub过程,使其成为以MyUrl作为参数并返回字符串的函数,而不是使用它在其中插入图像Activesheet(like this for example)。