Excel 在 VBA 中,如何获取 Function 的返回值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel 在 VBA 中,如何获取 Function 的返回值相关的知识,希望对你有一定的参考价值。
请测试一下,可据实修改:Function GetTextPair(Optional docStyle As String = "TTK", Optional bTag As String = "[", Optional eTag As String = "]") As String
Dim bPosition As Long
Dim ePosition As Long
Dim textPair As String
Dim temp As String
temp = ""
With Selection
.Start = 0
.End = 0
End With
With Selection.Find
.ClearFormatting
.Style = docStyle
.Format = True
.Forward = True
.Text = ""
.Wrap = wdFindStop
Do While .Execute = True
textPair = Selection.Text
bPosition = InStr(textPair, bTag) + 2
ePosition = InStr(textPair, eTag)
If bPosition > 0 And ePosition > 0 Then
temp = temp & "||||" & Mid$(textPair, bPosition, ePosition - bPosition)
End If
Loop
End With
GetTextPair = temp
End Function
Sub Example()
MsgBox GetTextPair
End Sub 参考技术A 使用等号就可以,例如函数abs,要获得去返回值在变量x中,语句为:
x = abs(-5) 参考技术B 直接等于就可以吧? a=MyFunction
如何使用 VBA excel 从资源中获取 og:image
【中文标题】如何使用 VBA excel 从资源中获取 og:image【英文标题】:How can I get og:image from resource with VBA excel 【发布时间】:2020-12-12 11:49:13 【问题描述】:如何使用VBA
excel 2007
从资源中获取og:image
例如,这个网址:
https://www.bbc.com/reel/video/p08jgfdg/the-truth-about-christopher-columbus
【问题讨论】:
请包括您的编码尝试 【参考方案1】:使用更新版本的 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
'This next line makes sure that the JavaScript on the page gets processed before continuing execution of the code.
DoEvents
'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)。
【讨论】:
@bpy - 我刚刚意识到你的问题有Excel-2007
标签。我添加了一些内容,使其适用于该版本的 Excel。
它在HttpRequest.Send
上中断...无论如何...有没有可能成为一个函数,以便我可以从任何单元格获取MyUrl
,例如:=GetImageFromHead(A3)
?
@bpy – 如果你告诉我运行时错误代码,也许我可以帮忙。但是,因为我没有Excel 2007,所以测试起来有点困难。关于函数形式,您当然可以使用MyUrl
作为参数来做到这一点,但是您希望函数返回什么?字符串形式的图像 URL?
...我了解 excel 2007 的不足,感谢您的所有努力。但是有没有办法在这里识别错误?至于第二个问题:是的!我希望函数将图像 URL 作为字符串返回。非常感谢,再次!
@bpy – 让我们将此讨论发送至chat。以上是关于Excel 在 VBA 中,如何获取 Function 的返回值的主要内容,如果未能解决你的问题,请参考以下文章
Excel 在 VBA 中,如何获取 Function 的返回值
VBA - 如何在 Excel 2010 的目录中获取最后修改的文件或文件夹