无需修改单元格且不用IMPORTRANGE如何获取其他表格值赋值给变量
解决方案
不需要使用IMPORTRANGE,你可以直接通过Google Apps Script内置的表格打开方法直接读取外部表格的单元格值,全程不会修改当前绑定表格的内容,实现代码如下:
var app = SpreadsheetApp; var ss = app.getActiveSpreadsheet(); var actsht = ss.getActiveSheet(); // 打开外部目标表格,可选择openByUrl或者openById方法 // 方式1:使用表格URL打开 var externalSpreadsheet = app.openByUrl("SHEET URL HERE"); // 方式2:使用表格ID打开(更稳定,ID是URL中/d/与/edit之间的字符串) // var externalSpreadsheet = app.openById("替换为你的目标表格ID"); // 直接读取目标表格指定工作表的B2单元格值赋值给变量 var hsv = externalSpreadsheet.getSheetByName("sheet1").getRange("B2").getValue();
注意事项
- 第一次运行脚本时需要授权脚本访问外部表格的权限,确保你当前使用的谷歌账号对目标表格至少有只读权限,否则会触发权限报错。
- 该方法所有读取操作都在内存中完成,不会对当前绑定的表格、外部目标表格写入任何内容,完全符合你的需求。
原代码报错原因
你之前的代码存在两处语法逻辑错误:
getRange()方法必须传入单元格范围参数,不允许空值调用。getValue()方法不接收任何参数,也不支持直接解析表格公式,IMPORTRANGE是Google Sheet单元格层面的公式功能,不能直接作为参数传入GAS的方法中。
内容的提问来源于stack exchange,提问作者Graham Palermo
相关产品推荐
相关产品推荐

