You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA代码开发需求:批量匹配Sheet2与Google maps起止点并返回距离

遍历Sheet2所有起点终点并获取Google Maps距离的VBA解决方案

看了你的现有代码,它目前只处理了Sheet2中B2这一个单元格的情况,没有实现遍历所有起点(A列)和终点(第1行)的需求,而且依赖Select和ActiveCell的写法不仅效率低,还容易因为操作界面导致错误。下面是优化后的完整代码,能实现你要的遍历功能:

Sub CalculateAllDistances()
' CalculateAllDistances Macro
' 遍历Sheet2所有起点与终点,获取Google Maps计算的距离
' Keyboard Shortcut: Ctrl+Shift+D

    Dim wsGM As Worksheet
    Dim wsSheet2 As Worksheet
    Dim lastStartRow As Long
    Dim lastEndCol As Long
    Dim startRow As Long
    Dim endCol As Long
    
    ' 定义工作表对象,避免频繁切换和Select操作
    Set wsGM = ThisWorkbook.Sheets("Google maps")
    Set wsSheet2 = ThisWorkbook.Sheets("Sheet2")
    
    ' 获取Sheet2中最后一个有数据的起点行(A列)
    lastStartRow = wsSheet2.Cells(wsSheet2.Rows.Count, "A").End(xlUp).Row
    ' 获取Sheet2中最后一个有数据的终点列(第1行)
    lastEndCol = wsSheet2.Cells(1, wsSheet2.Columns.Count).End(xlToLeft).Column
    
    ' 遍历所有起点(从A2开始,默认A1是表头)
    For startRow = 2 To lastStartRow
        ' 遍历所有终点(从B1开始,默认A1是起点列标题)
        For endCol = 2 To lastEndCol
            ' 将当前起点写入Google maps的C8
            wsGM.Range("C8").Value = wsSheet2.Cells(startRow, "A").Value
            ' 将当前终点写入Google maps的C9
            wsGM.Range("C9").Value = wsSheet2.Cells(1, endCol).Value
            
            ' 等待Google Maps公式计算完成(如果是实时API调用,可根据需要添加延时)
            DoEvents
            
            ' 将计算得到的距离写入Sheet2对应单元格
            wsSheet2.Cells(startRow, endCol).Value = wsGM.Range("C18").Value
        Next endCol
    Next startRow
    
    ' 释放对象,避免内存占用
    Set wsGM = Nothing
    Set wsSheet2 = Nothing
    
    MsgBox "所有距离计算完成!", vbInformation
End Sub

关键改进说明:

  • 抛弃Select/ActiveCell:直接通过工作表对象引用单元格,大幅提升代码稳定性和执行速度,不会因为手动点击工作表而打断流程。
  • 动态适配数据范围:用End(xlUp)和End(xlToLeft)自动识别Sheet2中起点、终点的最后一行/列,不用硬编码范围,数据增减都能自动适配。
  • 双重循环全覆盖:外层循环遍历A列所有起点,内层循环遍历第1行所有终点,确保所有起点-终点组合都被处理。

如果你的Google Maps距离计算依赖外部API且存在延迟,可以在写入C8/C9后添加延时代码,比如:

Application.Wait Now + TimeValue("00:00:02") ' 等待2秒,可根据实际情况调整时长

内容的提问来源于stack exchange,提问作者Loop Dish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:24:48