2014-10-31 61 views

回答

8

您可以使用这样的事情:

function getSheetIdtest(){ 
    var id = SpreadsheetApp.getActiveSheet().getSheetId();// get the actual id 
    Logger.log(id);// log 
    var sheets = SpreadsheetApp.getActive().getSheets(); 
    for(var n in sheets){ // iterate all sheets and compare ids 
    if(sheets[n].getSheetId()==id){break} 
    } 
    Logger.log('tab index = '+n);// your result, test below just to confirm the value 
    var currentSheetName = SpreadsheetApp.getActive().getSheets()[n].getName(); 
    Logger.log('current Sheet Name = '+currentSheetName); 
} 
+2

谢谢,我一直在这样做。你可以做SpreadsheetApp.openById()并且你可以getSheetId(),但是你不能通过ID来选择一张表。 – mrfinnsmith 2014-10-31 21:48:00

-3

不确定ID,但你可以通过表名称设置:

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
ss.setActiveSheet(ss.getSheetByName("your_sheet_name")); 

的SpreadsheetApp类有一个setActiveSheet methodgetSheetByName method

2
var sheetActive = SpreadsheetApp.openById("ID"); 
var sheet = sheetActive.getSheetByName("Name"); 
+3

如果您知道工作表编号,但不知道工作表名称,这将如何帮助选择工作表? SpreadsheetApp.openByID打开电子表格,而不是表格。 – browly 2017-01-09 23:53:09

+0

@browly这会有所帮助,因为ID永不改变,但是如果您明确写入了工作表名称并重命名工作表,那么脚本将不再工作。 – Xzila 2017-10-27 15:21:30