google-apps-script - 不能将 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()
.
我应该怎么做才能让它工作,所以单元格的值会被返回?
解决方案
AFAIK 公式由 Google 表格 UI 计算。考虑到这一点,我不建议在用户未打开电子表格时阅读电子表格公式结果。
一种解决方法是,当用户在工作流程的某个时间点打开电子表格时,将 IMPORTRANGE 结果保存为值。
另一种可能更可靠的方法是使用 Google Apps 脚本来完成导入工作,而不是依赖 IMPORTRANGE。
有关的
推荐阅读
- html - Flexbox - 根据显示的项目重复布局
- javascript - Angular 5:如何使用 ES6/ES5(没有 Typescript)注入路由器服务
- sonarqube - 某些 Sonarqube 6.7 仪表板中缺少 ncloc 指标
- css - 混合内容 - 不安全的样式表
- css - flexbox 和指定宽度
- python - 使用 pykafka 读取特定记录
- javascript - 访问 JSON 文件中的子树
- string - 在空格上拆分字符串但忽略双引号之间的部分
- rest - 调用函数角度后无法将状态值从 0 切换到 1
- cmd - 从命令行安装 RabbitMQ 服务器