我喜欢有一个脚本,列出从开始到结束日期的日期并将其放在 sheet2 中。添加新的结束日期和开始日期时,脚本会自动添加日期。日期格式 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 个小时。并且输出没问题
我改变了; 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");