【问题标题】:IF function in Google Sheets (scripts) with dates (today)带有日期(今天)的 Google 表格(脚本)中的 IF 函数
【发布时间】:2021-07-20 21:10:38
【问题描述】:

这些代码可能有什么问题?

 ...
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Daty'), true);
 var today = spreadsheet.getRange('B1').getValue()
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('ZNC'), true);
 var changeday = spreadsheet.getRange('E2').getValue()
 var nrrej = spreadsheet.getRange('A2')
 if(nrrej!=="" && changeday<today)
 {Browser.msgBox("Info");
 }else{
 ...

脚本不会同时考虑这些条件。分开就好了。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    回答

    您将rangestring 进行比较

    如何解决

    变量todaychangeday 是值。它们被定义为getRange('X').getValue()。但是,nrrej 是一个范围,您将它与字符串 ("") 进行比较。检查单元格是否为空白的最佳方法是使用函数isBlank。如果范围完全为空白,则返回 true

    最终代码

      spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Daty'), true);
      var today = spreadsheet.getRange('B1').getValue()
      spreadsheet.setActiveSheet(spreadsheet.getSheetByName('ZNC'), true);
      var changeday = spreadsheet.getRange('E2').getValue()
      var nrrej = spreadsheet.getRange('A2').isBlank()
      if (nrrej == false && changeday < today) {
        Browser.msgBox("Info");
      } else { }
    

    一些建议

    • 在出现错误之前使用debugger 检查变量的状态
    • ctrl + shft + I 使用自动缩进

    参考

    【讨论】:

    • 这很有趣,因为如果我检查这个: var nrrej = spreadsheet.getRange('A2').getValue() if (nrrej > "") A script do not see that A2 is空白的。但是如果我从 A2 (nrrej) 中删除 .getValue() 它会看到...
    • 检查单元格是否为空白的最佳方法是使用内置函数,检查我的更新
    • 某事是错误的,因为如果 nrrej 和 changeday 是空白脚本停止。但是如果 sth 在 nrrej(changeday 仍然空白)脚本运行并且当 sth 在 changeday(nrrej 仍然空白)脚本运行 Today (B1) 是公式 =TODAY()。
    • 我已经更新了代码。我没有检查您是否写了nrrej!=="",所以新条件应该是nrrej == false,因为如果单元格为空白,nrrejtrue。如果这不能解决问题,你能给我一些示例数据来测试代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    相关资源
    最近更新 更多