【发布时间】:2020-04-06 01:31:59
【问题描述】:
我正在尝试使用 Apps 脚本将一个单元格的值复制到另一个单元格。源单元格的值由查询公式生成:
=sum(iferror(query(ExportDrop!$A$2:$AJ,"select AJ where A matches '" & join("|",C$3:C) & "' AND AH = '" & A3 & "'",0),0))
源表成功且正确地显示此查询公式的输出。
在脚本中工作时,以下代码生成零 (0),这与查看工作表时不同。
cellval = sourceSheet.getRange("B3").getValue();
SpreadsheetApp.getUi().alert(cellval); return;
我尝试使用 setActiveRangeSelection()、copyValuesToRange()、copyTo(,{contentsOnly: true}) 等 getDisplayValue()、getValue()、getValues()(对范围参考进行相应更改)。
这是 Google 表格查询功能中的错误吗?我想知道,因为当我将包含查询功能的源表格打印为 PDF 时,也会发生同样的事情。生成的 PDF 显示零值。所以这似乎不是我的脚本的问题,而更像是源表的问题。打印“更简单”的查询公式表的测试工作正常。
我做错了什么?
编辑:
这里是一个例子:https://docs.google.com/spreadsheets/d/1eHHV-TJhC_aVNNLspx3suKhrthtcjRfIcZR0dWdTvOI
尝试打印 Sheet2。第一个 PDF“预览”看起来不错,但在导出后打开 PDF 时,总和值全为零。
【问题讨论】:
-
需要样品表链接来演示。
-
@CodeCamper 抱歉,应该将其包含在 OP 中。我已经对其进行了编辑以包括在内。
-
情况变得奇怪了。使用新的 Brave Browser 窗口,工作表最初按照您的建议显示为零。通过 Chrome 触摸 B 列中的公式后,我的 Brave 窗口显示了正确的值。打开新的 Brave 浏览器会再次导致零值。所以它看起来像一个错误,但与我的问题无关。看起来浏览器在第一次加载工作表时呈现零,但如果在浏览器打开时更新工作表,它会显示正确的值。
-
@TheMaster 看来
matches根本没有在服务器上运行,只是在本地有点像format布尔功能只是谷歌的虚假广告。可悲的是,一个简单的网络浏览器刷新就证明了这种不同步故障。 -
@TheMaster 我试过
flush它仍然显示零即使它是10在你的脸上,matches根本没有进入服务器,刷新让一切恢复零。
标签: google-apps-script google-sheets printing google-sheets-query