如果Google App脚本中的声明要匹配日期

时间:2014-06-17 16:15:36

标签: javascript google-apps-script google-sheets

我正在尝试在Google App脚本中为Sheets写一个简单的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中的公式是2014年1月1日所以我的问题可能是以某种方式将I8-MOD(WEEKDAY(I8),7)转换为日期,但是我是不知道如何最好地解决这个问题。是否有App脚本公式可以做到这一点?或者我们应该设置另一个变量来保存数据并在if语句中使用它。

提前致谢! 肖恩

2 个答案:

答案 0 :(得分:0)

当你写

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

你得到的是范围,而不是价值......

所以请将其更改为

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

它应该会更好; - )

答案 1 :(得分:0)

你基本上仍在比较一个范围。

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

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

如果您检查记录器,您将看到上面的if语句产生"范围"对于这两个值。