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

Excel VBA自定义TRAVELTIME函数出现#NAME?错误求助

解决TRAVELTIME函数返回#NAME?错误的方案

首先看你工作表里的调用公式:=traveltime(orgin, destination, apikey),这里第一个参数拼写错误了——函数定义里的参数是origin,但你写成了orgin(少了一个字母i),这是导致#NAME?的直接原因,先把这个拼写改过来。

如果改完还是报错,排查下面这些点:

  • 确认宏已启用:打开工作簿时如果弹出宏禁用提示,必须选择启用宏,否则自定义函数无法运行。
  • 检查JsonConverter模块:确保JsonConverter.bas文件已正确添加到VBA工程(在VBA编辑器的工程窗口能看到该模块),且模块没有编译错误。
  • 核对函数位置:确认函数确实在标准模块(模块1)中,而非工作表模块;如果误放在工作表模块,调用时需要加上工作表前缀,比如=Sheet1!TRAVELTIME(...)。
  • 调整宏安全设置:若Excel宏安全级别过高,会阻止自定义函数执行,可在「文件-选项-信任中心-信任中心设置-宏设置」中临时调整为「启用所有宏」(测试完成后记得调回安全级别)。

另外,你的函数代码可以做几个优化,避免后续其他报错:

  1. 在模块开头添加Option Explicit,强制变量声明,提前发现拼写类错误。
  2. 给httpReq变量声明类型:Dim httpReq As Object。
  3. 增加API返回错误的处理逻辑,避免无路线数据时崩溃:
If Not parsed.Exists("routes") Or parsed("routes").Count = 0 Then
    TRAVELTIME = "无路线数据"
    Exit Function
End If

内容的提问来源于stack exchange,提问作者Washington state one

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:42:10