Google电子表格:添加由inputBox设置的日期,填充范围

时间:2013-10-01 19:51:40

标签: google-apps-script google-sheets

如何根据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日等等。帮助

1 个答案:

答案 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;
}

enter image description here enter image description here