以下VBA代码已提供给我们,并且应该可以根据我们在Excel中的邮政编码和住宅号码返回街道地址。
但我似乎无法让它发挥作用。介意我不是VBA专家:(
我有钥匙,知道需要它。我有一个包含邮政编码的列和一个包含街道编号的列。我需要为每一行输出一个街道名称。
知道如何设置吗?
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 :(得分:0)
我只是浏览你的代码,不做任何测试或真正分析它应该做什么。底部注释掉了一些代码行:
'If xDoc.documentElement.childNodes.length > 1 Then
' Tekst41 = MsgBox("Meerdere straten op deze Postcode", vbInformation, "Meerdere Straten")
'End If
您可能想询问代码作者是否希望将此部分代码留作注释 - 注释掉代码意味着编译器会忽略代码行。通过为任何带有撇号字符的文本添加前缀来创建注释。很多时候,当有人编写代码时,他们会注释掉部分代码,以便他们可以测试代码的各个部分。可能是作者正在这样做而忘记取消评论(通过删除撇号)这部分代码。
另外,我要指出此代码似乎与Microsoft.XMLDOM一起使用。要开始了解此代码的作用,您可能需要查看HERE。
这可能不是一个完整的答案,但我希望它有所帮助。基于你的问题的简洁性和模糊性,要真正了解你想要问的内容,这有点困难。