2017-10-16 4 views
0

私は、毎日タブまたはシートを複製し、今日の日付にそのシートの名前を変更するスクリプトを探しています。毎日重複するシート

これは可能ですがどこでも答えは見つかりません。
これまでのスクリプトは以下の通りですが、動作しません。

function CreateNewPulseSheet() { 

    // The code below makes a duplicate of the active sheet 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("master do not use"); 
    SpreadsheetApp .getSheetByName().duplicateActiveSheet(); 

    // The code below will rename the active sheet to a date based on cell M1 of the source spreadsheet 

var myValue = SpreadsheetApp.getActiveSheet().getRange("M1").getDisplayValue(); 
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(myValue); 

} 
+0

[Googleスクリプトでシートと名前のコピーと名前の変更はセル参照に基づいています](https://stackoverflow.com/questions/23472440/google-script-to-copy-and-rename-a -sheet-and-name-is-a-cell-reference) –

答えて

0

これは上記のRubénのコメントにリンクされている質問とほぼ同じです。しかし、このコードの何が問題なのかという疑問に答えるために、シートを複製する行が問題です。 SpreadsheetAppの後にスペースがあり、getSheetByName()を呼び出すと、Sheetオブジェクトが返されます。 Sheetオブジェクトには、メソッドduplicateActiveSheet()はありません。あなたが何をしたいか はこれです:

function CreateNewPulseSheet() { 
    // The code below makes a duplicate of the active sheet 
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("master do not use").activate(); //getSheetByName returns a Sheet, but doesn't set it as active 
    SpreadsheetApp.getActiveSpreadsheet.duplicateActiveSheet(); /Duplicate makes a copy and sets it as the active sheet 

    // The code below will rename the active sheet to a date based on cell M1 of the source spreadsheet 
    var myValue = SpreadsheetApp.getActiveSheet().getRange("M1").getDisplayValue(); 
    SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(myValue); 
} 

あなたはそれを宣言した後、それを参照することはありませんので、私は、シート変数を取り出しました。

+0

ありがとう、私はあなたの編集を使用して、私は完全に動作し、 –

関連する問題