Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较两个不同单元格的值计算为false-谷歌应用程序脚本_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 比较两个不同单元格的值计算为false-谷歌应用程序脚本

Javascript 比较两个不同单元格的值计算为false-谷歌应用程序脚本,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我是JavaScript新手,我正在制作一个电子表格,试图隐藏单元格内容的列 其思想是:当值1和值2相同(两个不同单元格的值相同)时,列保持为未隐藏。当不相同时,它会隐藏。但是,每次OnEdit时,列都会隐藏 此外,当值相同时,我无法将其取消隐藏。有什么想法吗 函数onEdit(e){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var s=ss.getSheetByName(“自动媒体规划器”);//输入工作表名称 var cell1=s.ge

我是JavaScript新手,我正在制作一个电子表格,试图隐藏单元格内容的列

其思想是:当值1和值2相同(两个不同单元格的值相同)时,列保持为未隐藏。当不相同时,它会隐藏。但是,每次OnEdit时,列都会隐藏

此外,当值相同时,我无法将其取消隐藏。有什么想法吗

函数onEdit(e){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getSheetByName(“自动媒体规划器”);//输入工作表名称
var cell1=s.getRange('C7');
var cell2=s.getRange('AX6');
var value1=cell1.getValues();
var value2=cell2.getValues();
var列=s.getRange(“D1”);
如果(value1!=value2){
s、 hideColumn(柱);
}
如果(value1==value2){
s、 无提示列(列);
}
说明:
  • 在代码中,
    value1
    value2
    是具有以下内容的数组 格式化
    [[]]
    ,因为您使用
    getValues()
  • 不能像比较两个值那样比较两个数组。即使数组中的值相同,此
    value1==value2
    也返回false
  • 要正确比较两个数组,一种方法是运行:
    JSON.stringify(value1)==JSON.stringify(value2)
    如果值相同,则将导致true
参见此示例:

val1=[[0.0]];
val2=[[0.0]];
console.log(val1==val2)//返回false

console.log(JSON.stringify(val1)==JSON.stringify(val2));//如果是单个单元格,则返回true
使用getValue而不是getValue…….var value1=cell1.getValue();var value2=cell2.getValue();这是一个不选择数组而是选择单个单元格的值的问题!因此从值中删除s就足够了!!好吧,这很有意义。通常是最微小的事情把整个事情搞砸了!:D非常感谢Marios!!!