Google apps script 在电子表格中存储十进制值而不是项目属性中的整数的Google Apps脚本

Google apps script 在电子表格中存储十进制值而不是项目属性中的整数的Google Apps脚本,google-apps-script,Google Apps Script,这是我的第一篇文章。我试着通过谷歌和这个网站进行搜索,但确实找不到任何关于在GAS中打字或转换数值的信息,特别是在这种情况下。因此,问题是: 我有一个非常基本的脚本附加到谷歌电子表格。脚本只是跟踪最后一行的填充,将值增加一,以便填充下一行。我将“最后一行使用”存储为项目属性。出于某种原因,脚本一直将该值作为十进制值写入项目属性,这会使整个脚本失效,因为我似乎无法使用十进制值引用单元格位置 以下是代码片段: function onEdit(e) { var ss = SpreadsheetAp

这是我的第一篇文章。我试着通过谷歌和这个网站进行搜索,但确实找不到任何关于在GAS中打字或转换数值的信息,特别是在这种情况下。因此,问题是:

我有一个非常基本的脚本附加到谷歌电子表格。脚本只是跟踪最后一行的填充,将值增加一,以便填充下一行。我将“最后一行使用”存储为项目属性。出于某种原因,脚本一直将该值作为十进制值写入项目属性,这会使整个脚本失效,因为我似乎无法使用十进制值引用单元格位置

以下是代码片段:

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var value = ss.getSheetByName("Sheet1").getRange("D13").getValue().toString();
  var last = ScriptProperties.getProperty("last");

  var therowx = parseInt(ScriptProperties.getProperty("therow"));
  Browser.msgBox("The last row is: " + therowx);

  if( value != last ) {
    ScriptProperties.setProperty("last", value);
    ScriptProperties.setProperty("therow", therowx + 1);
  }
}
假设我在运行脚本之前将属性预先设置为1,一旦这个方法启动,它就会将属性设置为2.0,而不仅仅是2。我尝试过用Number()和parseInt()函数包装方法调用,但它们似乎没有什么区别


我愿意接受建议,因为我肯定我做错了什么,只是不太确定是什么。

看起来您使用的是来自电子表格的值,var value=ss.getSheetByName(“Sheet1”).getRange(“D13”).getValue().toString()
这是您得到的小数点,因为谷歌电子表格将默认为小数点后一位。您需要突出显示列或单元格,并将格式更改为数字>四舍五入以消除它。

我确信我在这里丢失了您完整脚本的一些组件,但是您是否尝试过“getLastRow”函数?教程中有一些脚本使用它,这是一种经过测试的查找工作表最后一行的真实方法。

根据文档,getProperty返回一个字符串。parseInt接受一个字符串。。。我在很多地方使用parseInt,它对我来说很好