Google Sheet Script应该将列1的值增加1,但它是串联的1。我不擅长谷歌脚本。你能帮我找出我做错了什么吗。
function onFormSubmit(e) {
var columnNumber = 1; // first col is 0
var initialId = 18;
var sp = PropertiesService.getScriptProperties();
var id = sp.getProperty("req_id") || initialId ;
id = id.split(".")[0] ;
e.range.offset(0, columnNumber, 1, 1).setValue(id);
sp.setProperty("req_id", id + 1);
}
纸张中的输出如下
1811
18111
181111
18111111
- 您希望将值放入单元格,并希望每次运行都添加
1
- 您想在这种情况下使用属性服务
如果我的理解是正确的,这个答案怎么样?请将此视为几种可能的答案之一。
修改要点:
- 我认为问题的原因是
getProperty()
检索到的值是字符串类型。在这种情况下,即使用setProperty()
输入数字,当用getProperty()
检索值时,检索到的值也是字符串类型 - 当编号用于
split()
时,会发生错误。因为split()
用于字符串
修改的脚本:
当您的脚本被修改时,它变成如下。
function onFormSubmit(e) {
var columnNumber = 1; // first col is 0
var initialId = 18;
var sp = PropertiesService.getScriptProperties();
var id = Number(sp.getProperty("req_id")) || initialId; // Modified
e.range.offset(0, columnNumber, 1, 1).setValue(id);
sp.setProperty("req_id", id + 1);
}
参考文献:
- getProperty(key(
- split((
- 数字
如果我误解了你的问题,而这不是你想要的结果,我道歉。