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