为excel2010创建等值的google doc电子表格函数importxml()函数
问题描述:
我曾经使用过google电子表格,特别是它们的importxml()函数。我想知道是否有一种方法可以在VBA中创建函数(对于Excel 2010)(我不是很聪明的在VBA上创建函数),从而可以将google函数复制到excel 2010文件中运行?为excel2010创建等值的google doc电子表格函数importxml()函数
我发现一些VBA代码,我认为它可以使用,但我似乎无法运行它给我我想要的。
理想情况下,我想把一个单元格(在Excel 2010中)以下函数并获取xpath内容。即:= importXML(“网址”,“xpath”)
任何指导将不胜感激。
最佳 帕科
Option Explicit
Public Sub WaitBrowserQuiet(objIE As InternetExplorer)
Do While objIE.Busy Or objIE.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
End Sub
Public Function getXPathElement(sXPath As String, objElement As HTMLBaseElement) As HTMLBaseElement
Dim sXPathArray() As String
Dim sNodeName As String
Dim sNodeNameIndex As String
Dim sRestOfXPath As String
Dim lNodeIndex As Long
Dim lCount As Long
' Split the xpath statement
sXPathArray = Split(sXPath, "/")
sNodeNameIndex = sXPathArray(1)
If Not InStr(sNodeNameIndex, "[") > 0 Then
sNodeName = sNodeNameIndex
lNodeIndex = 1
Else
sXPathArray = Split(sNodeNameIndex, "[")
sNodeName = sXPathArray(0)
lNodeIndex = CLng(Left(sXPathArray(1), Len(sXPathArray(1)) - 1))
End If
sRestOfXPath = Right(sXPath, Len(sXPath) - (Len(sNodeNameIndex) + 1))
Set getXPathElement = Nothing
For lCount = 0 To objElement.childNodes().Length - 1
If UCase(objElement.childNodes().Item(lCount).nodeName) = UCase(sNodeName) Then
If lNodeIndex = 1 Then
If sRestOfXPath = "" Then
Set getXPathElement = objElement.childNodes().Item(lCount)
Else
Set getXPathElement = getXPathElement(sRestOfXPath, objElement.childNodes().Item(lCount))
End If
End If
lNodeIndex = lNodeIndex - 1
End If
Next lCount
End Function
Private Sub cmdGetQuote_Click()
Dim ie As InternetExplorer
Dim elem As HTMLBaseElement
Dim url As String
url = "http://www.bloomberg.com/quote/MXIBTIIE:IND"
Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate url
WaitBrowserQuiet ie
Set elem = getXPathElement("//span[@class=' price']", ie.Document)
Range("A1").Value = elem.innerText
Set ie = Nothing
End Sub
您是否试图提取此信息?道指13,060.10,标准普尔500-1,398.08,纳斯达克-3,080.50' – 2012-04-07 13:48:23
没有。我试图提取4.76000 – macutan 2012-04-07 19:41:30
嗯,我找不到'4.76000'的价格' – 2012-04-08 08:17:35