如何在Google Sheets中不切换工作表跨表读写单元格?
解决Google Sheets Apps Script跨工作表读写不切换当前工作表的问题
核心是直接通过工作表名称获取目标表对象,全程不用调用activate()方法——这就是导致页面切换的根源。
直接上适配你需求的代码:
function copyAcrossSheets() { // 获取当前表格文件实例 const ss = SpreadsheetApp.getActiveSpreadsheet(); // 通过名称直接获取目标工作表,无需激活 const sheet2 = ss.getSheetByName('sheet2'); const sheet3 = ss.getSheetByName('sheet3'); // 读取sheet2的A1单元格内容 const targetValue = sheet2.getRange('A1').getValue(); // 将内容写入sheet3的B2单元格 sheet3.getRange('B2').setValue(targetValue); }
关键细节:
getSheetByName('工作表名称')是实现无切换操作的核心,它直接返回对应名称的工作表实例,完全不需要激活工作表,所以当前显示的sheet1会保持不变。- 别再用
activate()或者依赖getActiveSheet()切换工作表,这些方法才会触发页面跳转。 - 不管你当前在哪个工作表执行脚本,只要正确指定目标表的名称,就能完成跨表读写操作。
内容的提问来源于stack exchange,提问作者Jose Nogueira
相关产品推荐
相关产品推荐

