2014-10-31 20 views

Odpowiedz

8

Można użyć coś takiego:

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

Dzięki, robiłem to. Wydaje się bardzo niezdarne, że można zrobić SpreadsheetApp.openById() i można uzyskaćSheetId(), ale nie można wybrać arkusz po ID. – mrfinnsmith

-3

nie wiesz o ID, ale można ustawić wg nazwy arkusza:

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

SpreadsheetApp klasa ma setActiveSheet method i getSheetByName method.

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

W jaki sposób pomaga wybrać arkusz, jeśli znasz identyfikator arkusza, ale nie nazwę arkusza? SpreadsheetApp.openByID otwiera arkusz kalkulacyjny, a nie arkusz. – browly

+0

@browly Pomaga to, ponieważ identyfikator nigdy się nie zmienia, ale jeśli jawnie napiszesz nazwę arkusza, a nazwa arkusza zostanie zmieniona, skrypt przestanie działać. – Xzila