这是我的第一篇文章。我尝试通过谷歌和这个网站进行搜索,但实际上在这种情况下找不到有关类型转换或在GAS中转换数值的任何信息。所以这里的问题是:
我有一个非常基本的脚本附加到Google电子表格。该脚本只是跟踪已填充的最后一行,将该值增加1,以便可以填充下一行。我将“最后一行使用”存储为项目属性。由于某种原因,脚本继续将值作为十进制值写回Project Properties,这会抛出整个脚本,因为我似乎无法使用十进制值来引用单元格位置。
以下是代码段:
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);
}
}
假设我在运行脚本之前预先将Property设置为1,一旦此方法触发,它将其设置为2.0而不是2.我尝试使用Number()和parseInt包装方法调用()函数,但它们似乎没有区别。
我愿意接受建议,因为我确信我做错了什么但不太确定是什么。
答案 0 :(得分:0)
您似乎正在使用电子表格中的值,其值为var value = ss.getSheetByName(“Sheet1”)。getRange(“D13”)。getValue()。toString();
这是因为Google电子表格默认为小数点后一位。您需要突出显示列或单元格,并将格式更改为数字>圆形以摆脱它
我确信我在这里缺少你的完整脚本的一些组件,但是你尝试过“getLastRow”功能吗?教程中有一些脚本使用它,它是一种经过测试的真实方法,可以找到工作表的最后一行。