尝试使用多个工作表在应用程序脚本中测试Google电子表格,强制使用URL转到特定工作表

问题描述 投票:0回答:1

我正在使用许多工作表,但想强制我的脚本转到特定的工作表,但它保留在我的脚本中刚刚创建的活动工作表上?

注意:我不想使用URL,而是使用电子表格的实际名称,并且认为我必须使用setActiveSheet(),但无法找到任何信息,但是它不使用字符串,但是相反,您必须使用父类中的对象?

该脚本在日志中显示单词“ Master_Approval”,并且该工作表的名称是错误的工作表。

var Sprsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = Sprsheet.getActiveSheet();
var mySheet = sheet.getSheetName();

if (sheet.getSheetName() == "2020Members") {
  Logger.log('THE ACTIVE SHEETS NAME is :' + mySheet);    
}
else {      

  Logger.log('THE WRONG ACTIVE SHEETS NAME is :' + mySheet);
  // Force to the correct sheet ! 
  var sheetDataAsArr = sprSheet.getSheetByName("2020Members");
  var sheet = sprSheet.getActiveSheet();
  var mySheet = sheet.getSheetName();
  Logger.log('THE ACTIVE SHEETS NAME is :' + mySheet);
}   

它应该显示“ 2020Members”,但不是,如果测试失败,我想强制活动工作表为“ 2020Members”,而不是我们当前所在的工作表。

var sheetDataAsArr = sprSheet.getSheetByName("2020Members");
var mainSheet = sheetDataAsArr.getActiveSheet();
Logger.log('THE ACTIVE is :' + mainSheet);
var sheet = sprSheet.setActiveSheet(mainSheet);    
var mySheet = sheet.getSheetName();
Logger.log('THE ACTIVE SHEETS NAME is :' + mySheet);

上面有什么问题?

谢谢FHS

google-apps-script
1个回答
0
投票

上面有什么问题?

答案:

在您的最后一个代码段中,您写了一些错误的行:

  • sprSheet的每个实例必须为Sprsheet
  • 您需要使用getSheetName()上的mainSheet来记录工作表的名称
  • sprSheet.setActiveSheet(mainSheet)将活动工作表设置为活动工作表已经是,您需要使用setActiveSheet(sheetDataAsArr)

完整代码:

function myFunction(){
  var Sprsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = Sprsheet.getActiveSheet();
  var mySheet = sheet.getSheetName();

  if (sheet.getSheetName() == "2020Members") {
    Logger.log('THE ACTIVE SHEETS NAME is :' + mySheet);    
  }
  else {    
    var sheetDataAsArr = Sprsheet.getSheetByName("2020Members");
    var mainSheet = Sprsheet.getActiveSheet();
    Logger.log('THE ACTIVE is :' + mainSheet.getSheetName());
    var sheet = Sprsheet.setActiveSheet(sheetDataAsArr);    
    var mySheet = sheet.getSheetName();
    Logger.log('THE ACTIVE SHEETS NAME is :' + mySheet);
  }   
}

要注意的地方: Google表格在绑定的脚本文件中确实有一些奇怪的行为,并且有时如果打开并长时间不使用它们,则脚本选项卡会“丢失”其与电子表格的绑定状态;但是,可以通过重新加载电子表格来解决此问题。

希望对您有帮助!

相关问题:

© www.soinside.com 2019 - 2024. All rights reserved.