Google App Script传播parseInt / Number()

时间:2015-10-20 06:46:35

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

我正在尝试为第6行的每个新行生成一个简单但唯一的ID。我开始从B6添加数据,我需要在A6中生成一个ID。即使插入了新行,它也应该有效。问题是它显示了#NUM!

然而,我已经尝试过parseInt(x,10),parseInt(x),Number(x),并且两者都在工作。

我的代码:

function onEdit() {
  var sheet       = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
  var edditRow    = SpreadsheetApp.getActiveRange().getRow();
  var edditColumn = SpreadsheetApp.getActiveRange().getColumn();
  var column0     = sheet.getRange(edditRow, 1, 1, 2);
  var oValues     = column0.getValues();

  var userProperties = PropertiesService.getUserProperties();
  var properties     = userProperties.getProperty('id');
  var id;

  if (properties ==  null) {
    userProperties.setProperty('id', '1'); 

    if ((oValues[0][0] == '') && (edditRow > 5)  && (oValues[0][1] != '')) {
      id = Number(properties);

      sheet.getRange(edditRow, 1, 1, 1).setValue(id);
      id += 1;
      userProperties.setProperty('id', id);
    } 
  } else {
    id = Number(properties);

    Logger.log(id);

    if ((oValues[0][0] == '') && (edditRow > 5)  && (oValues[0][1] != '')) {
      sheet.getRange(edditRow, 1, 1, 1).setValue(id);
      id += 1;
      userProperties.setProperty('id', id);
    }  
  }
}

Browser console

1 个答案:

答案 0 :(得分:0)

您检查if (properties == null)然后使用未定义的properties var几行进入if,这会导致无效值。