应用脚本:为整列设置一个公式

时间:2016-08-09 10:46:42

标签: date google-apps-script google-sheets epoch formulas

我正在为Sheets开发一个Apps脚本项目,我不知道是不是因为我从未真正使用过Sheets或Excel,但我不知道如何通过代码为整列设置公式。

var cell = sheet.getRange([i], 2);
var cell2 = sheet.getRange([i], 1);
var inhoud = cell2.getValue();
cell.setFormula("=(" + inhoud/86400000 + "DATE(1970,1,1)");

我希望连续的每个B都能用同一行的A做某事。在工作表自我中很容易“向下拖动功能”,使其适用于每一行,但我不知道如何在代码中工作,因为我不能使用A2,例如,或A2 :A30。部分问题可能是它在for循环中:

var subsie = [];  

for (i = 0; i < subscriptions.length; i++) {

  var subscription = subscriptions[i];

  creationdate = subscription.creationTime;

  if (subscription.plan.planName == 'ANNUAL' && subscription.renewalSettings.renewalType == 'AUTO_RENEW') {  

  subsie.push([creationdate, ' ', subscription.plan.planName]);
  Logger.log(subsie);

    var cell = sheet.getRange([i], 2);
    var cell2 = sheet.getRange([i], 1);
    var inhoud = cell2.getValue();
    cell.setFormula("=(A1:A100/86400000) + DATE(1970,1,1)");

  } }

  sheet.getRange(sheet.getLastRow()+1, 1, subsie.length, subsie[0].length).setValues(subsie);

实际的目标是将A的纪元值转换为日期,我尝试了很多不同的方式,但结果比我预期的要困难。这是唯一似乎适用于我的输出的公式,如下所示: 1433235478178 。如何使此代码有效?提前谢谢!

1 个答案:

答案 0 :(得分:2)

解决了它:)

creationdate = (subscription.creationTime/86400000)+25567;