【问题标题】:Google Sheets Vlookup not working when Apps Script adds a line to range当 Apps 脚本向范围添加一行时,Google Sheets Vlookup 不起作用
【发布时间】:2017-01-20 05:57:47
【问题描述】:

我在电子表格中设置了一个基本的 vlookup,该电子表格通过表单进行更新。它从由 Apps 脚本更新的页面中提取数据。我的 vlookup 看起来像这样

=VLOOKUP($B$3,'Checklist Log'!A:AZ,2,false)

“核对表日志”选项卡具有沿第 1 行的列标题和向下的 A 列日期,由以下人员填充

=SORT(Sheet1!A2:A,1,FALSE)

来自表单提交到的 sheet1。

每当提交表单时,我的应用程序脚本都会在第 1 行下添加一行,然后从清单选项卡复制单元格,然后清除清单选项卡。

我认为一个可能的解决方案是让我的应用程序脚本从b2:AZ2 插入新单元格而不是整行,但我似乎无法找到执行此操作的代码。那么我该如何解决呢?

【问题讨论】:

  • 如果您在最后一个上方插入行,则范围不会中断
  • 那么,你会找到范围内的最后一行,然后使用Google Documentation Link - insertRowBefore(rowNumber)
  • 所以就像桑迪说的那样让它将新信息粘贴到范围的底部?然后我什至不需要插入一行,这样就不应该弄乱我的 vlookup。或者在第 2 行上方插入行而不是在第 1 行下方插入?我的 vlookup 正在整个 coulumn 中寻找 A:AZ。
  • 即使我重新输入 vlookup 公式,它仍然不会为应用程序脚本创建的行返回值。我得到的只是“错误在 VLOOKUP 评估中找不到值 '42226.53652'。”单元格的格式与有效的单元格相同。这是查看我的工作表的链接。问题是选项卡“审核查找”中的 vlookups 引用选项卡“清单日志”docs.google.com/spreadsheets/d/…
  • 所以我认为插入一行的脚本是问题所在,所以我创建了一个新脚本将其复制并粘贴到底部的下一个可用行。除了试图引用时间戳的 Vlookup 外,一切正常。现在我认为这可能是一个格式问题,好像我玩弄它的格式足以识别它。它甚至不是产生影响的格式,而是我改变它的次数。当我将其更改为自动时,它通常会识别它,但如果我第一次更改它则不会。它的行为很奇怪。我被正式难住了

标签: google-apps-script google-sheets gs-vlookup


【解决方案1】:

参考格式:VLOOKUP(search_key, range, index)

失败示例:VLOOKUP(C5,G16:H18,2)

传递示例:VLOOKUP(C5,G16:H19,2)

当我尝试在范围的最后一行(即第 18 行)中查找一个值时,我遇到了类似的错误。根据其他人的建议,我尝试更改范围单元格中值的格式,但无济于事。然后我增加了范围以包含额外的一行(即range = G16:H19),一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多