2013-02-07 32 views
0

我有我一直在试图把它给我上的按钮发现距离使用邮政编码在谷歌

的工作表名称是inputwks的点击距离这个VBA脚本,我已经定义了一个名为C_post细胞,D_postMiles。 我试图设置C01在VBA脚本是C_post值并C02是的D_post值和距离是Miles

子getDistance的()

Dim inputWks As Worksheet 
Dim c01 As Range 
Dim c02 As Range 
Dim Miles As Range 
Dim distance As Range 

'Set distance = inputWks.Range("Miles") 


Set c01 = inputWks.Range("C_post") 
Set c02 = inputWks.Range("D_post") 
'Set Miles = inputWks.Range("Miles") 

Application.EnableEvents = False 

'c01 As String, c02 As String) As Double 
With inputWks 

With CreateObject("MSXML2.XMLHTTP") 
    .Open "Get", "http://maps.google.co.uk/maps?f=d&source=s_d&saddr=" & c01 & "&daddr=" & c02 
    .send 

Do: DoEvents: Loop Until .readyState = 4 

    If InStr(.responseText, "mi</span>") <> 0 Then _ 
     distance = Val(Split(Split(Split(.responseText, "<div class=""dir-altroute-inner"">")(1), "<span>")(1), "</span>")(0)) 
    .abort 
End With 

End With 


inputWks.Range("Miles") = distance 
Application.EnableEvents = True 

End Sub 

原始马可看起来像这样

Public Function Getdistance(c01 As String, c02 As String) As Double 
With CreateObject("MSXML2.XMLHTTP") 
    .Open "Get", "http://maps.google.co.uk/maps?f=d&source=s_d&saddr=" & c01 & "&daddr=" & c02 
    .send 


Do: DoEvents: Loop Until .readyState = 4 

If InStr(.responseText, "mi</span>") <> 0 Then _ 
    Getdistance = Val(Split(Split(Split(.responseText, "<div class=""dir-altroute-inner"">")(1), "<span>")(1), "</span>")(0)) 
.abort 
End With 
End Function 
    Application.EnableEvents = True 
End Function 
+0

不知道q是什么呢?你有没有尝试在Excel中创建一个按钮,并将其分配给它的OnClick事件? –

+0

以及这是一个公共功能,我试图让它进入一个按钮,所以我增加了几个位和鲍勃它原宏看起来像这样 –

+0

嗯,看起来所有gibrish –

回答

0

做的Ive这里就是答案

子getDistance的()

Dim inputWks As Worksheet 
Dim c01 As Range 
Dim c02 As Range 
Dim Miles As Range 
Dim distance As Long 

'Set distance = inputWks.Range("Miles") 

Set inputWks = Worksheets("Input") 
Set c01 = inputWks.Range("C_post") 
Set c02 = inputWks.Range("D_post") 
Set Miles = inputWks.Range("Miles") 

Application.EnableEvents = False 


With inputWks 

With CreateObject("MSXML2.XMLHTTP") 
    .Open "Get", "http://maps.google.co.uk/maps?f=d&source=s_d&saddr=" & c01 & "&daddr=" & c02 
    .send 

Do: DoEvents: Loop Until .readyState = 4 

    If InStr(.responseText, "mi</span>") <> 0 Then _ 
     distance = Val(Split(Split(Split(.responseText, "<div class=""dir-altroute-inner"">")(1), "<span>")(1), "</span>")(0)) 
    .abort 
End With 


End With 

    Miles = distance 
    Application.EnableEvents = True 

末次

+0

谷歌已经确保其网页所有你必须做的,如果你使用这是在http后添加一个s –

相关问题