我正在使用许多工作表,但想强制我的脚本转到特定的工作表,但它保留在我的脚本中刚刚创建的活动工作表上?
注意:我不想使用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
上面有什么问题?
在您的最后一个代码段中,您写了一些错误的行:
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表格在绑定的脚本文件中确实有一些奇怪的行为,并且有时如果打开并长时间不使用它们,则脚本选项卡会“丢失”其与电子表格的绑定状态;但是,可以通过重新加载电子表格来解决此问题。
希望对您有帮助!