Google脚本可在两个单元格匹配时创建警报

时间:2018-07-22 17:29:47

标签: google-apps-script google-sheets

当2个单元格的值相同时,我想创建一个带有YES_NO问题的警报。 1个单元格将具有当前时间[= now()],而另一个单元格将具有某个时间。 2次匹配时,我可以得到一个UI警报吗?这是我到目前为止编写的代码,即使时间不匹配,它也可以正常工作。

function LiDCOcheck(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ui = SpreadsheetApp.getUi();
  var buttons = ui.ButtonSet.YES_NO;
  var bed = ss.getRange("C2").getValue();
  var due = ss.getRange("D2").getValue();
  var time = ss.getRange("A2").getValue();

  if (due=time){    
    var lidco = ui.alert("It hsa been 24 hours since the LiDCO in Bed " + bed + " was calibrated.  Is it still required?", buttons);
    if (lidco == ui.Button.YES){
      ss.getRange("D2").setBackground('#6aa84f');}
    else{
      ss.getRange("D2").setValue('Not Required')}}
}

谢谢

1 个答案:

答案 0 :(得分:0)

请注意,在您的原始脚本中,单等号是一个赋值,而双等号是比较所必需的。

if (due=time) {

是错误的,而

if (due==time) {

更好。但是,它仍然不起作用!

我通常发现,在处理电子表格中的日期或时间时,最好将其转换为javascript Date对象,以进行大多数操作,包括比较。

var due = new Date(ss.getRange("D2").getValue());
var time = new Date(ss.getRange("A2").getValue());

一个简单的比较只是比较getTime()函数的结果,该时间以毫秒为单位。

if (due.getTime()==time.getTime()){    

}