首页 > 解决方案 > 不能将 getValues() 与 IMPORTRANGE 一起使用

问题描述

我有一个电子表格,用来IMPORTRANGE从另一个电子表格中提取数据。我还有一个脚本,它总是获取特定列的最后一行、填写表格、创建链接并将其发送给某人。

我正在尝试使用getValues()从函数中获取已填充数据的特定单元格的值IMPORTRANGE

function askForPrice() {

var ss = SpreadsheetApp.openById('xXx');
var sheet = ss.getSheetByName('Sheet1');

var range1 = ss.getRange('A1').getDataRegion().getLastRow();
var data = ss.getDataRange().getValues();

var formUrl = ss.getFormUrl();     
var form = FormApp.openByUrl('xXxXx');
var items = form.getItems();

var dateCol = 1
var myID = sheet.getRange(range1, dateCol).getValue();
var dataCol1 = sheet.getRange(range1, dateCol).getValue();

Logger.log(dataCol1)

问题是,在我运行代码并用于Logger.log()检查 捕获的值之后getValues(),什么都没有出现。如果内容直接输入到单元格中,我可以通过Logger.log(). 但如果单元格包含在IMPORTRANGE范围内,则不会出现在Logger.log().

我应该怎么做才能让它工作,所以单元格的值会被返回?

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-formulaimportrange

解决方案


AFAIK 公式由 Google 表格 UI 计算。考虑到这一点,我不建议在用户未打开电子表格时阅读电子表格公式结果。

一种解决方法是,当用户在工作流程的某个时间点打开电子表格时,将 IMPORTRANGE 结果保存为值。

另一种可能更可靠的方法是使用 Google Apps 脚本来完成导入工作,而不是依赖 IMPORTRANGE。

有关的


推荐阅读