Javascript Google应用程序脚本中的If语句与日期匹配
我试图在谷歌应用程序脚本中为表单编写一个简单的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
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”