这似乎是一个非常简单的问题,但我似乎找不出这个问题。我正在使用谷歌表单运行一个库存系统,并已建立了一个系统,以纠正计数。它们在表单中输入正确的计数,并调整我的脚本的值,将旧计数与新计数进行比较。如果新值高于或小于以前的值,则有两个公式。在大多数情况下,这是很好的,但也有其他时候,它会突然相信新的数字(远高于旧的)是小于以前的价值。即使是运行日志也会显示,12大于100,9大于50。我不知道它为什么要这样做。
这是我的if声明:
if(!hfw){
var test = responses.getRange("C"+(lastRow)).getValues();
var test2 = current.getRange("DH9").getValues();
if(test == test2) {
current.getRange("DH6").setValue("0");
};
if(test > test2){
current.getRange("DH6").setValue(test-test2);
};
if(test < test2){
current.getRange("DH6").setValue("-"+(test2-test));
};
}
下面是带有表单和脚本的调整表:PALCaXwVMsOXWi5I2aiccg/编辑?usp=共享
一切都会有帮助的。你可以看到,在最后一行,我做了50遍,从1-6,它工作得很好,然后7-11,它决定他们大于50,并做了第二个方程式。
编辑的页面如下: Sheet11 Jwa0XmdL0bsTI/编辑?usp=共享
发布于 2020-08-16 22:24:05
.getValues()
(注:复数)返回数组。当您进行比较JavaScript中的对象时,您正在比较内存中对象的地址,而不是对象的值。换句话说,数组test
是否小于或大于test2
很可能是随机的,而且它们永远不会相等。
您需要使用.getValue()
(注意:单数)来获得一个要比较的值,并且您应该小心,最后要比较数字而不是字符串(默认情况下,Sheet应该为您完成转换,但您可以通过各种方式重写它)。
https://stackoverflow.com/questions/63442263
复制相似问题