Google工作表脚本有条件地将空白单元格的值设置为今天的日期,但保留现有数据相同

时间:2015-12-18 03:47:03

标签: javascript google-apps-script google-sheets

我很遗憾可能是一个简单的问题。

我有一列数据J,它在某些单元格中有一个日期,但不是全部。如果单元格是空白的,我需要在该单元格中写出今天的日期。

这是我到目前为止所做的:

var event=[];
var date= new Date();

for (event=1; event< destSheet.length; event ++){
    if (destSheet[event][10]<1){
        [event][10]=date;
  }
  }  

没有返回错误,它只是不写日期(我稍后会担心格式)。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您可能需要类似以下代码的内容。该代码构建了一个二维数组,用相同的数据覆盖现有数据,并在空白的单元格中添加一个新日期。

function xyz() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName("Sheet1");

  //getRange(start row, start column, numRows, number of Columns)
  var rangeData = sourceSheet.getRange(2,1, sourceSheet.getLastRow()-1, 1);

  var dataFromSheet = rangeData.getValues();
  var date= new Date();

  var i=0,
      thisCellValue,
      innnerArray = [],
      outerArray = [];

  for (i=0; i< dataFromSheet.length; i+=1){
    thisCellValue = dataFromSheet[i];

    if (thisCellValue === ""){
      innnerArray.push(date);
      outerArray.push(innnerArray);
    } else {
      innnerArray.push(thisCellValue); //To overwrite original data with the same data
      outerArray.push(innnerArray);
    }; 
  };

  sourceSheet.getRange(2,1, outerArray.length, innerArray[0].length).setValues(outerArray);
};