2014-10-31 150 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