将值分配给Google电子表格单元格时出错

时间:2017-10-12 09:29:48

标签: javascript arrays google-apps-script google-spreadsheet-api integer-arithmetic

我是谷歌脚本的新手。我想从电子表格单元格中为变量赋值,并且在进行算术运算后,想要将其分配给电子表格中的特定单元格。

我正在使用以下代码:

function myFunction() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getSheetByName("PATTERNS");
    var dd = sh.getRange("C4").getValue();
    var ee = sh.getRange("D4").getValue();
    var x = dd - ee;
    sh.getRange("P4").setValue(x);
}

但是,单元格P4的值显示错误:#NUM!

请帮忙!

我也想用于循环用于单元格no

for (var i = 1, i <60, i++)
{
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getSheetByName("PATTERNS");
    var dd = sh.getRange("C[i]").getValue();
    var ee = sh.getRange("D[i]").getValue();
    var x = dd - ee;
    sh.getRange("P[i]").setValue(x);
}  

如何获得这个?有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

function myFunction() {
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sh=ss.getSheetByName("PATTERNS");
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var change=false;
  for(var i=0;i<vA.length;i++)
  {
    if(!isNan(vA[i][2]) && !isNan(vA[i][3]))
    {
      vA[i][15]=vA[i][2]-vA[i][3];
      change=true;
    }
  }
  if(change)
  {
    rg.setValues(vA);
  }
}

答案 1 :(得分:0)

试试此代码

function myFunction() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getSheetByName("PATTERNS");
    var dd = sh.getRange("C4").getValue();
    var ee = sh.getRange("D4").getValue();
    var x = parseInt(dd) - parseInt(ee);
    sh.getRange("P4").setValue(x);
}