2016-12-12 20 views
0

新しく作成したシートの名前を昨日の日付で、場合によっては14日前に変更しようとしています。これまでに私が得たことがここにあります。スプレッドシートのシート名として日付を設定しました

私はこのスニペットをStackoverflowで見つけ、私の目的に合わせて少し修正しました。ただし、今日の日付で名前を付けるシートが作成されます。

// previous lines have been left out 
// set sheet name to yesterday's date 

var eet = ss.getSpreadsheetTimeZone(); 
var sheets = ss.getSheets(); 
var date = Utilities.formatDate(new Date(), eet, 'yyyy-MM-dd'); 
//this returns today's date (need yesterday's date, or date from 14 days ago) 

sheets[1].setName(date); // Rename second sheet 

私はあなたたちは

答えて

0

は昨日の日付のためにこれを試してみてください役立つことを願って。現在の日付の1を引いています

var testDate = new Date(); 
var secondDate = new Date(); 
secondDate.setDate(testDate.getDate()-1); 
var dateString = Utilities.formatDate(secondDate, eet, 'yyyy-MM-dd'); 

日付文字列の設定を確認していないことに注意してください。私は予約された "日付"を避けるために変数の名前を変更しましたが、それは必要ではないかもしれません。

+0

おかげでカール!これを私のコードにコピーし、これを中心にコードを修正しました。 –

0

実行前のシートの名前です。ここで

enter image description here

実行後のシートの名前です。ここでenter image description here

はコードです:

function changeSheetNamesWithDates() { 

    var ss = SpreadsheetApp.openById("ENTER_SPREADSHEET_NAME"); 
    var sheets = ss.getSheets(); 

    var count = 0; 
    for (var row in sheets) { 

     var startDate = new Date(); 
      startDate.setDate(startDate.getDate() - count); 
     var dateString = Utilities.formatDate(startDate, "GMT", "yyyy-MM-dd"); 

      sheets[row].setName("Sheet " + dateString); 
      count++; 
    } 
} 

あなたはそれが純粋にさかのぼるだけにして.setNameから単語 "シート" を削除したい場合は、次の

sheets[row].setName(dateString); 
関連する問題