我做了两个函数,它们将在激活时将单元格值增加或减少1

我添加了一个条件,即如果cellValue大于/小于-1和3,则该函数将无法运行。

我尝试了两种解决此问题的方法,但是它们都给我带来了问题。

function increment(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cellValue;
 cellValue = sheet.getRange("AM39");
var range = sheet.getRange("AM39");
var value = range.getValue();

if (cellValue < 3) {
range.setValue(value + 1);
}
}




function increment(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cellValue;
cellValue = sheet.getRange("AM39");
var range = sheet.getRange("AM39");
var value = range.getValue();

if (cellValue < 3) return;
range.setValue(value + 1);

}


第一个功能使用

if (cellValue < 3) {range.setValue(value + 1);


但是该功能没有执行任何操作,我尝试了
第二个使用

if (cellValue < 3) return;


在添加值之前检查。每次按此功能该公式加1,它一直加

任命cellValue我做错什么了吗?我是Java语言的新手,正在通过电子表格进行学习

先感谢您!

最佳答案

我在下一行中看到一个问题。

var cellValue;
cellValue = sheet.getRange("AM39");


将其与您编写的另一段代码进行比较:

var range = sheet.getRange("AM39");
var value = range.getValue();


发生的情况是cellValue是一个范围,而value是单元格的实际值,因此执行if (cellValue < 3) {,并且(我测试了它)会导致错误。

解决

只需将cellValue = sheet.getRange("AM39");更改为cellValue = sheet.getRange("AM39").getValue();

编辑:第二个解决方案的问题是return立即突然执行该函数。我的建议是让您阅读this.

08-19 03:29