開始日から終了日までの日付を一覧表示し、それをシート 2 に入れるスクリプトが好きです。新しい終了日と開始日が追加されると、スクリプトは日付を自動的に追加します。日付 dd-mm-yy の形式
役に立てば幸いです。使用できない多くのスクリプトを検索しました。ありがとう。
シート1
A B
startDate endDate
5-4-13 12-4-13
19-4-13 26-4-13
Sheet2 の結果
A
Dates
5-4-13
6-4-13
7-4-13
8-4-13
9-4-13
10-4-13
11-4-13
12-4-13
19-4-13
20-4-13
21-4-13
22-4-13
23-4-13
24-4-13
25-4-13
26-4-13 In column A
返信ありがとうございます。私はすでにたくさんのグーグル検索を行っていましたが、ほとんど機能するものを一緒に貼り付けました。スクリプトは最終日を出力せず、開始日の前日から始まる場合があります。日付の問題と setValue に何か関係があるのでしょうか?
function getDates() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var export = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
var startRow = 2; // First row of data to process
var numRows = sheet.getLastRow()-1; // Number of rows to process
// Fetch the range of cells A:B
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i=0; i < data.length; i++) {
var row = data[i];
var startDate = row[0] //get start date
var endDate = row[1]; //get the end Date
endDate.setHours(0);
var e = Utilities.formatDate(endDate,'GMT+0100','d-M-yyyy');
//Logger.log(endDate+" "+e);
//Logger.log(date+" ");
startDate.setHours(0);
for (var k=0; k<9; k++) {
var date=new Date(startDate.getYear(),startDate.getMonth(),startDate.getDate() + k);
//Logger.log(d+" "+date);
var d = Utilities.formatDate(date,"GMT+0100","d-M-yyyy");
var last_row = export.getLastRow();
export.insertRowAfter(last_row);
var target_range = export.getRange("A"+(last_row + 1));
target_range.setValue(d);
if (e == d) break;
}
}
}
解決策を見つけましたが、それが最善の解決策だとは思いません。より良い解決策があることを願っています。したがって、GMT 時間に 11 時間が追加されます。そして、出力はOKです
私は変わりました; var e = Utilities.formatDate(endDate,'GMT+0100','dM-yyyy'); に; var e = Utilities.formatDate(endDate,'GMT+1200','dM-yyyy');
と; var d = Utilities.formatDate(date,"GMT+0100","dM-yyyy"); に; var d = Utilities.formatDate(date,"GMT+1200","dM-yyyy");