0

如何根据 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、15-Oct-201314 等等. 我希望是 2013 年 10 月 15 日、2013 年 10 月 22 日、2013 年 10 月 29 日等等。帮助?

4

1 回答 1

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

在此处输入图像描述 在此处输入图像描述

于 2013-10-01T20:33:10.927 回答