有时读取 ImportXML 单元格时,.getValue() 返回 #N/A

2023-12-05

我编写了一个脚本,将 ImportXML 公式写入单元格,然后几秒钟后尝试读取单元格并将其替换为它的返回值。

问题是当我用获取的值替换单元格时,我经常(但并非总是)得到#N/A。问题是,我能够在短时间内看到正确的值,因此 ImportXML 可以正确获取并返回该值,但当重写到电子表格时,它就会变得混乱。

示例代码:

myformula = '=ImportXML("http://api.something/01.xml","/offers/price")';
sheet.getRange("A1").setFormula(myformula);
Utilities.sleep(5000);
sheet.getRange("A1").setValue(sheet.getRange("A1").getValue());

我注意到,当最近获取 URL(并由 Google 内部缓存)时,它会获得正确的值。

关于如何解决这个问题的建议?


您的脚本无法接收电子表格已完成重新计算的通知。重新计算所用的时间是不确定的。显然,5 秒的延迟通常就足够了,但有时重新计算需要更长的时间。

Replace sleep()使用重试循环来延长时间窗口。

myformula = '=ImportXML("http://api.something/01.xml","/offers/price")';
sheet.getRange("A1").setFormula(myformula);
while (sheet.getRange("A1").getValue() === "#N/A") {
  Utilities.sleep(5000);
}
sheet.getRange("A1").setValue(sheet.getRange("A1").getValue());

但就像我说的,每次执行时我都会在单元格中看到正确的值,然后在我重写它之后,它会得到#N/A。换句话说,如果我不重写该值,我将在不到一秒的时间内在单元格中看到结果。 –米勒 2013-01-14 19:32

这是云计算现实的一部分。电子表格对象正在更新,并与正在处理原始文件的缓存副本的所有查看者共享。缓存副本与原始副本同步,但这不是即时的。当您查看该工作表时,您就是一名用户。您的脚本正在另一台谷歌服务器上“在云端”执行,虽然它最终会看到与您相同版本的电子表格,但这可能需要一段时间。让两个用户进行更改(您+脚本)需要多次同步操作,因此有时受影响的单元会陷入困境。

有一个开放问题 1131与此类似,评论中有一些解决方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有时读取 ImportXML 单元格时,.getValue() 返回 #N/A 的相关文章

随机推荐

  • MySQL如何让值过期?

    所以我目前正在为网站设计忘记密码功能 基本上 当用户单击 忘记密码 时 它会向他们发送一封带有重置令牌的电子邮件 我希望重置令牌在 48 小时内过期 出于安全原因 我将如何在 MySQL 和 PHP 中执行此操作 我的表中有一个名为 重置密
  • 如何将消息从子用户控件传递到父级

    这是一个 Windows 窗体 Net C 问题 我有一个无边框窗口 其透明度键和背景颜色使其完全透明 窗口内有几个用户控件 我希望能够移动窗户 我知道如何在父窗口上执行此操作 但我的问题是子控件是唯一可见的 因此也是唯一可单击的 问题是
  • 复杂类型需要主键

    我有一个对象 其中包含另一个对象类型的属性 我想将其视为复杂类型 public class Location IModule public string Id get set public Coordinate Coordinate get
  • CSS 下拉菜单

    一直在尝试获得 纯CSS 下拉菜单 几天来一直在尝试获得一个 简单 的CSS下拉导航 可以显示顶层并隐藏第二层 但无法使子项目在悬停时显示 任何帮助非常感谢示例隔离在这里 css和html粘贴到bin下面http www webdevout
  • 在 Ruby 中生成 GUID

    我有一个问题 用 GUID 很容易解决 特别是 对于密码重置工作流程 我想将 GUID 令牌发送到用户的电子邮件并让他们使用该令牌重置密码 由于 GUID 是唯一的 因此这非常安全 并且可以避免我通过电子邮件向人们发送密码 这是有风险的 我
  • 使用变量名 Josson 的表达式计算 JSON 对象

    我们需要在 java 中计算 JSON 对象表达式 我们有以下源 JSON 对象 a 100 b 200 c 300 d calc a c f g 100 h 200 i calc g h 我们需要输出这种格式 a 100 b 200 c
  • VBS 替换消息框而不是放在顶部

    我有这个 VBS 脚本来创建消息框 x msgbox The message 6 Title 但如果我运行另一个带有不同消息的脚本 它会将其放在顶部 使用以下代码从批处理文件调用 vbs echo off temp message vbs
  • C# 泛型类型声明

    是否可以获取通过反射获得的类型的 c 名称 例如 System Collections Generic List 1 System String mscorlib Version 4 0 0 0 Culture neutral Public
  • Objective C - 综合属性[重复]

    这个问题在这里已经有答案了 可能的重复 在 Objective C 中使用下划线作为属性名称前缀 在综合属性时我发现有人在做 synthesize myVar myVar 什么是 myVar 以及与简单执行的区别 synthesize my
  • Facebook javascript 在“分享”上触发

    我在这里看到了这个链接 如何检测Facebook分享成功 使用 JavaScript 但我该如何实现呢 首先 您需要在页面中加载 Javascript SDK div div
  • Java SwingWorker 不会在任务完成时终止

    好的 所以我一直在使用 SwingWorker 并获得了一些用于更新 gui 的简化代码 但我无法弄清楚如何让线程在完成时正确终止 目前 它只能通过 stop 选项终止 我该如何设置它才能在线程完成进程时正确终止线程 目前 经过return
  • SQLiteException:没有这样的列:basal(代码1)

    我正在使用数据库 并且有以下 DataBaseHandling 类 public class DatabaseHandler extends SQLiteOpenHelper All Static variables Database Ve
  • 使用 python 反向模板

    我有一个文件 充满了某种格式的数据 我想用该数据填充我自己的数据结构 例如 我可以有一个这样的文件 John Smith 0123 children Sam Kim 我想用该字符串做一些事情 以便将数据提取到例如 firstName Joh
  • Outlook 根据类别自动更改提醒

    我需要自动化 Outlook 以便当用户在约会上设置特定类别时 它会根据该类别自动设置提醒时间 例如 用户具有 现场会议 类别和 场外会议 类别 他希望现场会议的提醒时间自动更改为 15 分钟 场外会议的提醒时间自动更改为 30 分钟 他明
  • 如何使用 Object 参数对 Arraylist 中的对象进行排序

    我在对 Arraylist 中的对象进行排序时遇到问题 因为我是排序对象的新手 对数组列表进行排序非常基本 但对对象的数组列表进行排序是完全不同的事情 基本上 我一直在堆栈溢出中查看代码 人们似乎使用比较器来解决他们的问题 但他们没有解释如
  • XCode 无法构建 Unity3D 项目:找不到 lib

    我有 Unity3D 项目 我为 iOS 构建了它 如果我使用 XCode 的模拟器运行它 它工作得很好 但是 如果我想为 iOS 设备 或连接到我的 Mac 的物理设备编译它 我会遇到很多错误 因此我无法创建存档 出于测试目的 我什至创建
  • 如何使用php将GPS坐标转换为完整地址? [复制]

    这个问题在这里已经有答案了 我的 GPS 坐标格式为54 1456123 10 413456 如何使用 PHP 将它们转换为包含邮政编码 街道和城市的地址 使用谷歌API lat 54 1456123 long 10 413456 url
  • Python for 循环跳过所有其他值

    我在 django 应用程序中遇到了一个奇怪的问题 其中 for 循环跳过了所有其他项目 我已经获取了返回的查询集并且list ed 进行迭代 这样做的目的是删除另一个列表中的项目 该列表通过 POST 变量传递到视图 该视图是一个ajax
  • 如何在 Windows Phone 中使用 Bing 搜索 API?

    我正在尝试使用 Bing 搜索 API 查找图像作为应用程序内图块的背景 我已将 BingSearchContainer cs 包含在我的项目中 但无法使其与此处提供的示例代码一起使用 有关如何在我的 Windows Phone 8 应用程
  • 有时读取 ImportXML 单元格时,.getValue() 返回 #N/A

    我编写了一个脚本 将 ImportXML 公式写入单元格 然后几秒钟后尝试读取单元格并将其替换为它的返回值 问题是当我用获取的值替换单元格时 我经常 但并非总是 得到 N A 问题是 我能够在短时间内看到正确的值 因此 ImportXML