2015-08-03 67 views
1

我已经作出两个功能,这将在激活,会增加或由1Javascript函数增加/减少cellValue

我加的状态下,降低细胞值,如果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时做了什么错误吗?我对JavaScript很陌生,我正在用电子表格学习它

先谢谢您!

+0

您可能需要'parseInt'。 – Joy

回答

1

我在以下行中看到问题。

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

与其他的代码你写的比较:

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

会发生什么事,是cellValue是一个范围,而价值是细胞的实际值,这样做if (cellValue < 3) {,和(我测试过)会导致错误。

为了解决

只是改变cellValue = sheet.getRange("AM39");cellValue = sheet.getRange("AM39").getValue();

编辑:用第二溶液问题是,return立即abrupts的功能的执行。我的建议是你阅读this.

0

见,如果这个工程:

function increment() { 
var range = SpreadsheetApp.getActive() 
    .getSheets()[0].getRange("AM39"), 
    n = range.getValue(); 
if (n > -1 && n < 3) return; 
range.setValue(parseInt(n) + 1); 
}