如何根据inputBox设置的startDate填写Google电子表格中的范围?基本上,(1)用户输入startDate; (2)脚本从startDate开始填充单元格A1到A13,每行添加7天。
这是我试图做的事情:
var startDate = Browser.inputBox('What is the start date?', Browser.Buttons.OK_CANCEL);
for (var k = 0; k < (13); k++) {
sheet.getRange((k+1),1).setValue(startDate + k * 7);
}
不幸的是,我认为setValue将startDate视为字符串?因此,对于框中的15/10/2013的输入,以及格式化为dd-mmm-yyyy的单元格,单元格将填充15-Oct-20130,15-Oct-20137,2013年10月15日等等。 。我希望的是2013年10月15日,2013年10月22日,2013年10月29日等等。帮助
答案 0 :(得分:0)
您可以利用UIApp的专用小部件来选择开始日期,并使用电子表格公式来创建日期序列(如您所知,电子表格中的=date+7
会在7天后自动生成日期。
这是怎么回事:
function dateSequence() {
var app = UiApp.createApplication().setTitle('Choose a start Date').setHeight('100').setWidth('200');
var date = app.createDateBox().setName('date').setValue(new Date());
var clickHandler = app.createServerHandler('setDate').addCallbackElement(date);
app.add(date).add(app.createButton('submit', clickHandler));
SpreadsheetApp.getActive().show(app)
}
function setDate(e){
var app = UiApp.getActiveApplication().close();
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1,1).setValue(e.parameter.date);
for (var k = 1; k < 13; k++) {
sheet.getRange((k+1),1).setFormula("= (A"+k+")+"+7);
}
return app;
}