Google App脚本中的If语句匹配日期

If Statement in Google App Script to Match Date

本文关键字:语句 日期 If App 脚本 Google      更新时间:2023-09-26

我试图写一个简单的if语句在谷歌应用程序脚本表和有一点麻烦等同于一个公式与日期。

这是我现在的代码。

function addNewRow(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheetByName("Tab1");  
  var rng = sh.getRange("A1");
  var date = sh.getRange("B1");
  if (rng > date) {
     sh.getRange("J10").copyTo(sh.getRange(2, 2), {contentsOnly: true});
  }
}

基本上,我试图让if语句检查A1中的日期是否大于B1。如果是,则返回值,否则不返回。

看起来我在A1中使用的公式是I8-MOD(WEEKDAY(I8),7),而在B1中使用的公式是1/1/2014,所以我的问题可能是将I8-MOD(WEEKDAY(I8),7)转换为日期,但我不确定如何最好地解决这个问题。是否有一个App Script公式可以做到这一点?或者我们应该设置另一个变量来保存数据并在if语句中使用它。

提前感谢!肖恩

当你写

  var rng = sh.getRange("A1");
  var date = sh.getRange("B1");

你得到的是范围,而不是值…

所以请把它改成

  var rng = sh.getRange("A1").getValue();
  var date = sh.getRange("B1").getValue();

应该会更好;-)

实际上仍然是在比较一个范围。

相反,下面将以您希望的方式比较内容:

if (rng.getValue() > date.getValue()) {

如果您检查记录器,您将看到上面的If语句为两个值生成"Range"。