带有日期(今天)的 Google 表格(脚本)中的 IF 函数
Posted
技术标签:
【中文标题】带有日期(今天)的 Google 表格(脚本)中的 IF 函数【英文标题】:IF function in Google Sheets (scripts) with dates (today) 【发布时间】: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
...
脚本不会同时考虑这些条件。分开就好了。
【问题讨论】:
【参考方案1】:回答
您将range 与string
进行比较。
如何解决
变量today
和changeday
是值。它们被定义为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
使用自动缩进
参考
Range Range: isBlank Range: getValue Use the debugger and breakpoints【讨论】:
这很有趣,因为如果我检查这个: 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
,因为如果单元格为空白,nrrej
是true
。如果这不能解决问题,你能给我一些示例数据来测试代码吗?以上是关于带有日期(今天)的 Google 表格(脚本)中的 IF 函数的主要内容,如果未能解决你的问题,请参考以下文章
Google 表格脚本:带有 HTML 表格的电子邮件,该表格只有一组
使用 Apps 脚本在带有日期的 Google 电子表格中存档