Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 尝试使用多个工作表在应用程序脚本中测试google电子表格会强制转到特定工作表,而不使用URL_Google Apps Script - Fatal编程技术网

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

Google apps script 尝试使用多个工作表在应用程序脚本中测试google电子表格会强制转到特定工作表,而不使用URL,google-apps-script,Google Apps Script,我正在使用许多工作表,并希望强制脚本转到特定的工作表,但它保留在刚刚在脚本中创建的活动工作表上 注意:我不想使用URL,而是使用电子表格的实际名称,我想我必须使用setActiveSheet()但无法找到任何信息,但它不使用字符串,而是必须使用父类中的对象 该脚本在日志中显示“Master_Approval”(主审批)字样,但激活工作表的名称是错误的工作表 var Sprsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = Sprs

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

注意:我不想使用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);
}   
它应该显示“2020成员”,但不是,如果测试失败,我想强制活动表为“2020成员”,而不是我们当前所在的表

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

上面怎么了

答复: 在上一个代码段中,有些行写得不正确:

  • sprSheet
    的每个实例都需要是
    sprSheet
  • 您需要在
    mainSheet
    上使用
    getSheetName()
    来记录工作表的名称
  • sprSheet.setActiveSheet(mainSheet)
    正在将活动工作表设置为活动工作表已经存在的任何内容,您需要使用
    setActiveSheet(sheetdataasar)
完整代码: 需要注意的是:Google Sheets在绑定脚本文件时确实有一些奇怪的行为,如果两者都打开且长时间无人看管,有时脚本选项卡将“丢失”其绑定到电子表格的状态;但是,可以通过重新加载电子表格来解决此问题

我希望这对你有帮助

相关问题:

我需要类似的东西。这是我最后使用的。根据您的功能,相应地进行更改。您需要将“Sheet2”更改为您的工作表名称“2020成员”

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);
  }   
}
function theSecondSheet() {
   var activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
    if(activeSpreadSheet.getSheetByName("Sheet2").activate()){
     SpreadsheetApp.setActiveSheet(activeSpreadSheet.getSheetByName("Sheet2"));
    
    }
}