我正在尝试在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语句中使用它。
提前致谢! 肖恩
答案 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语句产生"范围"对于这两个值。