1

私は googledocs とスクリプトに非常に慣れていないので、助けが必要です。

次のようなスクリプトが必要です。

  • 1枚目のシートを複製(1枚目)
  • 複製を最初の位置に配置します
  • 複製の名前を現在の日付に変更する
  • 複製ファイルの最初の行より下のすべての行を削除します (例: 2 行目から 300 行目)

試してみましたが、一部しか機能していません...そして、適切に機能していないようです。これは私が持っているものです:

function myFunction() { 
  SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();
  SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet("New Sheet");
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0]; 
  // Rows start at "1" - this will delete the first two rows 
  sheet.deleteRows(2, 100); 
}

読んでいただきありがとうございます!

4

1 に答える 1

0

ここでの秘訣は、どのスプレッドシートが「アクティブ」であるかを追跡することです。最初のシートを複製したいので、最初のシートが「アクティブ」であることを確認する必要があります。(そうであると仮定することはできません。)

最初のシートを複製すると、新しいシートが「アクティブ」になります。実行したい操作の一部は「アクティブな」シートでのみ動作するため、これは便利です。

function myFunction() { 
  // Make the first sheet active in the active workbook
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.setActiveSheet(ss.getSheets()[0]);

  // duplicate the 1st sheet (1st in order)
  var newSheet = SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();

  // place the duplicate in the first positions
  ss.moveActiveSheet(1);

  // rename the duplicate to current date
  newSheet.setName((new Date()).toDateString());

  // delete all the rows below the first one in the duplicate file (e.g. 2nd to 300th row)
  var lastRow =  newSheet.getLastRow();
  newSheet.deleteRows(2, lastRow-1);
}
于 2013-07-31T21:26:26.210 に答える