Google Sheets Apps Script条件判断(If Else)失效:始终返回True问题求助
问题原因与修复方案
嘿,这问题很典型,我一眼就看出问题所在啦!
你代码里的条件判断永远返回true,核心原因是你把方法当成属性来调用了:
isBlank是Google Apps Script中Range对象的一个方法(函数),不是直接的属性值。当你写Dsheet.getRange('A3').isBlank时,你并没有执行这个方法去判断单元格是否为空,而是在引用这个函数本身。在JavaScript的条件判断逻辑里,任何非空的函数对象都会被认定为true,所以不管A3单元格实际内容如何,这个条件都会进入true分支。
修复后的代码
只需要给isBlank加上括号,让它变成方法调用,就能正确获取单元格是否为空的布尔值了:
if (Dsheet.getRange('A3').isBlank()) { Logger.log('true'); var dest = Dsheet.getRange('A1') source.copyTo (dest, {formatOnly: true}); source.copyTo (dest, {contentsOnly: true}); } else { Logger.log('false'); var lastRow = Dsheet.getLastRow()+5; var dest = Dsheet.getRange('A' + lastRow ) source.copyTo (dest, {formatOnly: true}); source.copyTo (dest, {contentsOnly: true}); }
这样修改后,条件判断就会根据A3单元格的实际状态来正确执行对应分支啦!
内容的提问来源于stack exchange,提问作者Keto
相关产品推荐
相关产品推荐

