Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google应用程序脚本中的If语句与日期匹配_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript Google应用程序脚本中的If语句与日期匹配

Javascript Google应用程序脚本中的If语句与日期匹配,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google 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 > dat

我试图在谷歌应用程序脚本中为表单编写一个简单的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(工作日(I8),7)
,在B1中使用的公式是1/1/2014,因此我认为问题可能会以某种方式将
I8-MOD(工作日(I8),7)
转换为日期,但我不确定如何最好地解决这个问题。是否有一个应用程序脚本公式可以做到这一点?或者我们应该设置另一个变量来保存数据,并在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”