Google Skript: hujayralarni taqqoslash === har doim ham hujayralarni ajratib turadi

Ikkala kamerani solishtirishni xohlayman va ular turli e-maillarni teng yoki yo'qligini qarab. Ushbu mavzu bo'yicha bir nechta maqolalarni o'qib bo'lgach, men nima uchun afsuski, bu === bilan taqqoslashni, natijada hujayralar bir xil hujayralarni taqqoslaganda ham har xil bo'lganini ko'rmayapman:

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("[email protected]", "test", "not equal!");
  } else {
    MailApp.sendEmail("[email protected]", "test", "equal!");
  }
  }

Men foydalansam ham ishlamaydi!

Har qanday maslahat yuqori darajada aprreciated - rahmat!

0
getRange() qo'ng'iroqlarni qaytaruvchi ob'ektlar va ikkita alohida ob'ektlar har doim teng emas.
qo'shib qo'ydi muallif Pointy, manba
Quyidagi qiymatlarni o'zgartiring: `if (sheet.getRange (2,10) .getValue() === sheet.getRange (2,10) .getValue ()) {` qarang: This thread
qo'shib qo'ydi muallif Karl_S, manba
Quyidagi qiymatlarni o'zgartiring: `if (sheet.getRange (2,10) .getValue() === sheet.getRange (2,10) .getValue ()) {` qarang: This thread
qo'shib qo'ydi muallif Karl_S, manba
Bu bir oz yordam beradi, men izlayotgan taqqoslash uchun hujayralarga qanday murojaat qilishim kerak?
qo'shib qo'ydi muallif JSS, manba
Bu bir oz yordam beradi, men izlayotgan taqqoslash uchun hujayralarga qanday murojaat qilishim kerak?
qo'shib qo'ydi muallif JSS, manba

6 javoblar

Ranglar o'zlari emas, balki hujayralardagi qiymatlari ni solishtirishingiz kerak.

Agar bitta hujayralar bilan ishlayotgan bo'lsangiz, bu juda sodda:

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

Biroq, qatorlarni bir nechta hujayralar bilan taqqoslashni istasangiz, u yanada murakkab, chunki siz qiymatlar massivlarini taqqoslashingiz kerak bo'ladi.

2
qo'shib qo'ydi

Ranglar o'zlari emas, balki hujayralardagi qiymatlari ni solishtirishingiz kerak.

Agar bitta hujayralar bilan ishlayotgan bo'lsangiz, bu juda sodda:

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

Biroq, qatorlarni bir nechta hujayralar bilan taqqoslashni istasangiz, u yanada murakkab, chunki siz qiymatlar massivlarini taqqoslashingiz kerak bo'ladi.

2
qo'shib qo'ydi

I noticed you were comparing the same cells? I changed it to compare cells J2 & K2 and to log the differences. I hope this helps.

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

function SendEmail() {
 var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow(); 
  var ui = SpreadsheetApp.getUi();// var file =     SpreadsheetApp.getActiveSheet(); 
  Logger.log(sheet.getRange(2,10).getValue());// logs value of J2
    Logger.log(sheet.getRange(2,11).getValue());// Logs the value of K2
 if(sheet.getRange(2,10).getValue() === sheet.getRange(2,11).getValue()) {
   //MailApp.sendEmail("[email protected]", "test", "equal!");
    Logger.log('equal');
  } else {
  // MailApp.sendEmail("[email protected]", "test", "not equal!");
    Logger.log('not equal');
  }
  }
</div> </div>
1
qo'shib qo'ydi

I noticed you were comparing the same cells? I changed it to compare cells J2 & K2 and to log the differences. I hope this helps.

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

function SendEmail() {
 var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow(); 
  var ui = SpreadsheetApp.getUi();// var file =     SpreadsheetApp.getActiveSheet(); 
  Logger.log(sheet.getRange(2,10).getValue());// logs value of J2
    Logger.log(sheet.getRange(2,11).getValue());// Logs the value of K2
 if(sheet.getRange(2,10).getValue() === sheet.getRange(2,11).getValue()) {
   //MailApp.sendEmail("[email protected]", "test", "equal!");
    Logger.log('equal');
  } else {
  // MailApp.sendEmail("[email protected]", "test", "not equal!");
    Logger.log('not equal');
  }
  }
</div> </div>
1
qo'shib qo'ydi

GetRange() usuli uchun qaytish turi Ob'ektni egallagan oralig'i. Ob'ektlar mos yozuvlar tiplari bo'lib, ular taqqoslanadigan parametrlarga bir xil ob'ekt namunasini ko'rsatmasalar, hech qachon teng hisobga olinmaydi.

Yuqorida aytib o'tilganidek, hujayraning mazmunini qaytaradigan va qiymatlarni solishtiradigan oraliqda getValue() usulini chaqirishingiz kerak.

0
qo'shib qo'ydi

GetRange() usuli uchun qaytish turi Ob'ektni egallagan oralig'i. Ob'ektlar mos yozuvlar tiplari bo'lib, ular taqqoslanadigan parametrlarga bir xil ob'ekt namunasini ko'rsatmasalar, hech qachon teng hisobga olinmaydi.

Yuqorida aytib o'tilganidek, hujayraning mazmunini qaytaradigan va qiymatlarni solishtiradigan oraliqda getValue() usulini chaqirishingiz kerak.

0
qo'shib qo'ydi
Javascript UZB
Javascript UZB
99 ishtirokchilar

@js_uzb @vuejs_uz @react_uz @nodejs_uz @angular_uz @ngTashkent @yiiframework_uz @laravel_uz @linux_uzbek @python_uz @swift_uzb —————— @uzdevgroup @UzGeeksGroup ——— @UzDev_Jobs @jobs_uzb