我是一个简单的代码,在A1中有一个日期,例如 06/06/2017
我尝试做的是添加三列并在其中设置公式。 我使用以下方法添加列:
ss.insertColumns(1,3);
然后我在三列中设置公式:
ss.getRange(1,1).setFormula('=MONTH(D1);
ss.getRange(1,2).setFormula('=WEEKNUM(D1);
ss.getRange(1,3).setFormula('=CHOOSE( weekday(D1), "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")');
然而,最终发生的事情是,所有新列最终都会从之前继承A列的格式(或者至少基于我对Google Script的非常有限的理解,我的想法)。因此,如果新的A1显示 05/01/1900 。当我点击格式>数字>数字时,它最终会显示 6 。所以数字是正确的,但格式错误。
我该如何处理这个问题?请记住,真实文件有数百行日期,我使用循环来分配公式。
答案 0 :(得分:1)
您可以在设置内容或公式的同时set the number format一个单元格。所以在
的情况下ss.getRange(1,1).setFormula('=MONTH(D1);
这可以成为
ss.getRange(1,1).setFormula('=MONTH(D1)').setNumberFormat("0")
您可以与.setNumberFormat(numberFormat)
一起使用的possible formats与您在Sheets中使用的相同。
除了解决方案之外,这里设置3个单元格的优选方法(与your other question相关联)而不是一次设置这些公式,您可以通过一次调用设置所有三个。
ss.getRange(1,1,1,3)
.setFormulas([
'=MONTH(D1)',
'=WEEKNUM(D1)',
'=CHOOSE( weekday(D1), "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")'])
.setNumberFormats(["0","0","text"]);