不能将 getValues() 与 IMPORTRANGE 一起使用
Can't use getValues() with IMPORTRANGE
我有一个电子表格,我在其中使用 IMPORTRANGE
从另一个电子表格中提取数据。我还有一个脚本,它总是获取特定列的最后一行,填写表格,创建 link 并将其发送给某人。
我正在尝试使用 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()
捕获的值之后,什么也没有出现。
如果内容直接输入到单元格中,我可以 return 通过 Logger.log()
。但是如果单元格包含在 IMPORTRANGE
范围内,它不会出现在 Logger.log()
.
中
我应该怎么做才能让它发挥作用,这样单元格的值就会被 returned?
要求:
使用 IMPORTRANGE
公式获取单元格的值。
解决方案:
不使用 getValues()
,而是使用 getDisplayValues()
。 returns 二维数组中单元格的显示值。
你的代码行看起来像这样:
var data = ss.getDataRange().getDisplayValues();
参考:
AFAIK 公式由 Google 张 UI 计算得出。考虑到这一点,我不建议在用户未打开电子表格时阅读电子表格公式结果。
一种解决方法是,当用户在您的工作流程中的某个时刻打开电子表格时,IMPORTRANGE 结果被保存为值。
另一个可能更可靠的方法是使用 Google Apps 脚本来完成导入工作,而不是依赖于 IMPORTRANGE。
相关
- Spreadsheet function (=importrange()) not updating
- Is it possible to do ImportRange in Google Apps Script?
我有一个电子表格,我在其中使用 IMPORTRANGE
从另一个电子表格中提取数据。我还有一个脚本,它总是获取特定列的最后一行,填写表格,创建 link 并将其发送给某人。
我正在尝试使用 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()
捕获的值之后,什么也没有出现。
如果内容直接输入到单元格中,我可以 return 通过 Logger.log()
。但是如果单元格包含在 IMPORTRANGE
范围内,它不会出现在 Logger.log()
.
我应该怎么做才能让它发挥作用,这样单元格的值就会被 returned?
要求:
使用 IMPORTRANGE
公式获取单元格的值。
解决方案:
不使用 getValues()
,而是使用 getDisplayValues()
。 returns 二维数组中单元格的显示值。
你的代码行看起来像这样:
var data = ss.getDataRange().getDisplayValues();
参考:
AFAIK 公式由 Google 张 UI 计算得出。考虑到这一点,我不建议在用户未打开电子表格时阅读电子表格公式结果。
一种解决方法是,当用户在您的工作流程中的某个时刻打开电子表格时,IMPORTRANGE 结果被保存为值。
另一个可能更可靠的方法是使用 Google Apps 脚本来完成导入工作,而不是依赖于 IMPORTRANGE。
相关
- Spreadsheet function (=importrange()) not updating
- Is it possible to do ImportRange in Google Apps Script?