2017-08-08 105 views
0

下面的VBA代码提供给我们,并且应该可以根据我们在excel中的邮政编码和门牌号来返回街头地址。VBA Excel基于列表的返回值

但我似乎无法得到它的工作。介意我不是一个VBA专家:(

我有钥匙,并知道它是必要的。我有一个邮政编码列,并与streetnumbers一列。我需要输出为每个行的streetname。

任何想法如何设置呢?

Sub gkkx() 

Dim xDoc As Object 
Set xDoc = CreateObject("Microsoft.XMLDOM") 
xDoc.async = False 
If xDoc.Load("https://api.pro6pp.nl/v1/autocomplete?auth_key=KEYGOESHERE&format=xml&pretty=True&nl_sixpp=" & Postcode & "&streetnumber=" & Streetnumber) Then 
    If xDoc.DocumentElement.Text = "Not found" Then 
    Plaats = "" 
    Adres = "" 
    Else 
    If xDoc.DocumentElement.ChildNodes.Length = 0 Then 
     Dim xDoc2 As Object 
     Set xDoc2 = CreateObject("Microsoft.XMLDOM") 
     xDoc2.async = False 
     xDoc2.Load ("https://api.pro6pp.nl/v1/autocomplete?auth_key=KEYGOESHERE&format=xml&pretty=True&nl_sixpp=" & Left(Postcode, 4)) 
     Plaats = xDoc2.DocumentElement.SelectSingleNode("result/city").Text 
     Adres = "" 
     Set xDoc2 = Nothing 
    Else 
     Plaats = xDoc.DocumentElement.SelectSingleNode("results/result/city").Text 
     Adres = xDoc.DocumentElement.SelectSingleNode("results/result/street").Text 
    End If 
    'If xDoc.documentElement.childNodes.length > 1 Then 
    ' Tekst41 = MsgBox("Meerdere straten op deze Postcode", vbInformation, "Meerdere Straten") 
    'End If 
    End If 
Else 
    ' The document failed to load. 
    Plaats = "" 
    Adres = "" 
End If 
Set xDoc = Nothing 

End Sub 
+0

“钥匙”可能会出现在代码显示为“KEYGOESHERE”的地方。只是一种预感。 –

+0

*但我似乎无法完成它的工作* - 投票结束,因为你不清楚你在问什么,请提供更多关于你遇到的具体失败的细节。看[问]并考虑提供[mcve]。 –

+0

我已经键入KEYGOESHERE所以是。问题:我有一个邮政编码栏和一个街道编号栏。我需要为每一行输出一个街道名称。 – Elias

回答

0

我只是通过您的代码一眼,并没有做任何测试或分析真什么是应该做的。有一些代码行注释掉在底部:

'If xDoc.documentElement.childNodes.length > 1 Then 
' Tekst41 = MsgBox("Meerdere straten op deze Postcode", vbInformation, "Meerdere Straten") 
'End If 

您可能想要问代码作者是否打算将这部分代码保留为注释 - 注释代码意味着代码行被编译器忽略。通过在撇号字符前加上任何文字来创建评论。很多时候,当有人编写代码时,他们会将部分代码注释掉,以便测试代码的各个部分。这可能是作者正在做这件事,并忘记取消注释(通过删除撇号)这段代码。

此外,我会指出,这段代码似乎与Microsoft.XMLDOM一起工作。要开始了解此代码正在做什么,您可能需要看看HERE

这可能不是一个完整的答案,但我希望它有帮助。基于你的问题的简短和模糊性,要想真正了解你想要问什么,这有点困难。