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 Google脚本:单元格与===的比较总是给出不同的单元格_Javascript_Google Apps Script - Fatal编程技术网

Javascript Google脚本:单元格与===的比较总是给出不同的单元格

Javascript Google脚本:单元格与===的比较总是给出不同的单元格,javascript,google-apps-script,Javascript,Google Apps Script,我想比较两个单元格,根据它们是否相等,发送不同的电子邮件。在阅读了关于这个主题的几篇文章之后,我很遗憾地不明白为什么以下与===的比较总是会导致单元格不同,即使我比较相同的单元格: function SendEmail() { var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow(); var ui = SpreadsheetApp.getUi(); // var file =

我想比较两个单元格,根据它们是否相等,发送不同的电子邮件。在阅读了关于这个主题的几篇文章之后,我很遗憾地不明白为什么以下与===的比较总是会导致单元格不同,即使我比较相同的单元格:

function SendEmail() {
 var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow(); 
  var ui = SpreadsheetApp.getUi(); //  var file =     SpreadsheetApp.getActiveSheet(); 
  if (sheet.getRange(2,10) === sheet.getRange(2,10)) {
    MailApp.sendEmail("ab@gmail.com", "test", "not equal!");
  } else {
    MailApp.sendEmail("ab@gmail.com", "test", "equal!");
  }
  }
如果我使用!==它也不起作用

任何提示都非常感谢-谢谢

您需要比较单元格中的值,而不是范围本身

如果您处理的是单个单元格,这很简单:

if(sheet.getRange(2,10).getValue() === sheet.getRange(2,10).getValue())
但是,如果要将范围与多个单元格进行比较,则比较复杂,因为需要比较值数组。

需要比较单元格中的值,而不是范围本身

如果您处理的是单个单元格,这很简单:

if(sheet.getRange(2,10).getValue() === sheet.getRange(2,10).getValue())

但是,如果要比较多个单元格的范围,则比较复杂,因为需要比较值数组。

我注意到您在比较相同的单元格?我将其更改为比较单元格J2和K2,并记录差异。我希望这有帮助

函数sendmail(){ var sheet=SpreadsheetApp.getActiveSheet(); var lastRow=sheet.getLastRow(); var ui=SpreadsheetApp.getUi();//var file=SpreadsheetApp.getActiveSheet(); Logger.log(sheet.getRange(2,10.getValue());//记录J2的值 Logger.log(sheet.getRange(2,11).getValue());//记录K2的值 if(sheet.getRange(2,10).getValue()==sheet.getRange(2,11).getValue()){ //MailApp.sendEmail(“ab@gmail.com“,”测试“,”相等“); Logger.log('equal'); }否则{ //MailApp.sendEmail(“ab@gmail.com“,”测试“,”不相等“); Logger.log('notequal'); }
}我注意到你在比较相同的单元格?我将其更改为比较单元格J2和K2,并记录差异。我希望这有帮助

函数sendmail(){ var sheet=SpreadsheetApp.getActiveSheet(); var lastRow=sheet.getLastRow(); var ui=SpreadsheetApp.getUi();//var file=SpreadsheetApp.getActiveSheet(); Logger.log(sheet.getRange(2,10.getValue());//记录J2的值 Logger.log(sheet.getRange(2,11).getValue());//记录K2的值 if(sheet.getRange(2,10).getValue()==sheet.getRange(2,11).getValue()){ //MailApp.sendEmail(“ab@gmail.com“,”测试“,”相等“); Logger.log('equal'); }否则{ //MailApp.sendEmail(“ab@gmail.com“,”测试“,”不相等“); Logger.log('notequal'); }
}getRange()方法的返回类型是Range,它继承自Object。对象是引用类型,除非比较的变量指向同一对象实例,否则永远不会认为它们相等


如前所述,您需要对范围调用getValue()方法,该范围将返回单元格的内容并比较值。

getRange()方法的返回类型是range,它继承自Object。对象是引用类型,除非比较的变量指向同一对象实例,否则永远不会认为它们相等


如前所述,您需要在将返回单元格内容的区域上调用getValue()方法并比较值。

getRange()调用返回对象,并且两个不同的对象总是不相等。这有点帮助,为了得到我想要的比较结果,我必须如何对单元格寻址?将其更改为ge值:`if(sheet.getRange(2,10).getValue()===sheet.getRange(2,10).getValue()){`有关更多详细信息,请参见
getRange()
调用返回对象,并且两个不同的对象总是不相等。这有点帮助,我必须如何寻址单元格才能获得我要查找的比较?将其更改为ge值:`if(sheet.getRange(2,10).getValue()===sheet.getRange(2,10).getValue(){`有关详细信息,请参阅