csv 应用程序脚本,而不是得到的范围值,我得到“加载中...”depite一切都是很好的显示

kadbb459  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(213)

我在这个范围内工作:

的数据
货币显示与公式,正如你所看到的,一切都很好地显示.
我突然有了这个问题,以前没有。当我尝试获取这个范围的值时:

const sheet = Sheet(1)
const range = sheet.getRange(RANGE_C)
const values = range.getDisplayValues()

字符串
如果我用getValues得到值,我会得到一个数组:#ERROR和getDisplayValues:“正在加载……”:
[ [ 'Chargement en cours...','0,00 ‐','Chargement en cours...','Chargement en cours...','Chargement en cours...','Chargement en cours...','8',' 8','0',' 0','14',' 14','0','0' ],etc]

7d7tgy0s

7d7tgy0s1#

如果计算结果未显示在Google Apps Script中,则可以使用SpreadsheetApp.flush(),它会等待计算完成,然后检索所需信息
对于未来的用户,来这篇文章寻找其他可能的解决方案:如果它发生在包含IMPORTRANGE的公式中,这可能还不够,所以我所做的解决方法是修改包含在公式或包含在我的范围中的公式中的一些单元格(在脚本中)。当这不可能时,我所做的就是指定一个单元格作为“更新单元格”,它不会影响公式,但会让我更新值并等待SpreadsheetApp.flush()刷新
例如,如果我有一个公式,它说:

=IMPORTRANGE("....","Sheet1!A:C")

字符串
那么我将把它改为:

=LET(updatecell,Z1,
IMPORTRANGE("....","Sheet1!A:C"))


然后,在代码中:

sheet.getRange("Z1").setValue(new Date())
SpreadsheetApp.flush()


这个“更新单元格”不会影响包含的任何公式,但由于它们位于公式的“内部”,因此它们将被迫更新并显示“flush()”之后的值。显然,我将单元格设置为Z1,但您可以将其更改为不影响您的任何其他单元格
免责声明:它失败了约1至5%的时间...这是Google的一些主要问题,但至少在大多数情况下它会让你解决它

相关问题