在Google电子表格中更改工作表而不激活它

时间:2015-05-23 21:02:33

标签: google-apps-script google-sheets

我有一张包含多张表的Google电子表格。我想在其中一个工作表中启动一个脚本,该工作表读取/写入其他工作表中的值而不激活其他工作表。我发现如果在脚本操作期间将其他工作表设置为活动状态,则会向用户显示其他工作表。有没有办法在不改变显示的情况下对其他工作表执行操作?

我正在为您提供该功能的相关部分。我想在电子表格中的几张纸上读取和写入值,而不显示切换到这些纸张。

/*** Calculate the ROI for each sheet ***/ 
function calcRoi(sheetNumber) {
  var total = 0;
  var cellLocation = "";
  var rowValue = 0;
  var cellValue = 0;
  var count = 0;
  var tempCellValue = 0;
  var roi = 0;
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  activeSheet = ss.setActiveSheet(ss.getSheets()[sheetNumber]); 

1 个答案:

答案 0 :(得分:1)

不要使用

activeSheet = ss.setActiveSheet(ss.getSheets()[sheetNumber]); 

改为使用

var sheets = ss.getSheets();
sheets[sheetNumber].getRange("Range Here").getValue();
sheets[sheetNumber].getRange("Range Here").setValue("Value");

只有当您想要在屏幕上显示该范围时,才需要设置激活范围。