2

これが私がやっていることです(古いメッセージからコピーして適応させようとしました):

1) 多くのシートを含むスプレッドシート内でシートを作成し、「TOC」という名前に変更します

2) "TOC" で、A1 内に次の式を追加します: =SheetNames( GoogleClock() )

3) Google Apps Script にコピーしたら、以下の関数「SheetNames」を実行します

function SheetNames() { // this will create a list of all the sheets ;)
try {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets()
  var out = new Array( sheets.length+1 ) ;
  out[0] = [ "Name" , "gid" ];
  for (var i = 1 ; i < sheets.length+1 ; i++ ) out[i] = [sheets[i-1].getName() , sheets[i-1].getSheetId() ];
  return out
}
catch( err ) {
  return "#ERROR!" 
}
}

4) 関数「delete_only_some_sheets」を実行します

function delete_only_some_sheets() {
// CAUTION !! It will delete some sheets ! 
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheetByName("TOC");
for (var i = 3; i<=5; i++){ // !!! HERE adapt the "5" number to your needs here
var tet = source.getRange(["B"]+[(i)]).getValues();

//ss.setActiveSheet(ss.getSheetId()[tet]); ///ERROR here ! ;(
   ss.deleteActiveSheet();
   //ss.deleteSheetId()[tet]; //possible ??

}
}

「メソッド "setActiveSheet(.") が見つかりません」というエラーが表示され続け、ブロックされています。;(

よろしくお願いします;)

編集 :

こんにちは、「Srik」のおかげで解決策が見つかりました! ;) パート 1) から 3) は同じです。パート 4) は次のようになります。

4) 関数「delete_only_some_sheets」を実行します

function delete_only_some_sheets() {
// CAUTION !! IT will delete some sheets ! 
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheetByName("TOC");
for (var i = 3; i<=5; i++){ // !!! HERE adapt the "5" number to your needs here
var tet = source.getRange(["A"]+[(i)]).getValues();

ss.setActiveSheet(ss.getSheetByName(tet));
ss.deleteActiveSheet();

}

}

4

1 に答える 1

4

まずgetSheetId()方法がない。getSheets()ここでは、オブジェクトの配列を返すメソッドについて言及していると思いSheetます。

次に、オブジェクトを引数としてsetActiveSheet()取ります。Sheetメソッドを使用getSheets()すると、次のように簡単に実行できます

ss.setActiveSheet(ss.getSheets()[i]);

TOC シートを読んだり、ID を取得したりする必要はありません。

于 2012-10-29T16:09:59.913 に答える