Javascript Google脚本-插入列继承格式

Javascript Google脚本-插入列继承格式,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个简单的代码,其中A1中有一个日期,例如2017年6月6日 我尝试做的是添加三列并在其中设置公式。 我使用以下命令添加列: 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", "Mo

我有一个简单的代码,其中A1中有一个日期,例如2017年6月6日

我尝试做的是添加三列并在其中设置公式。 我使用以下命令添加列:

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")');
然而,最终发生的事情是,所有新列最终都继承了以前的列格式(或者至少根据我对Google脚本的有限理解,我是这么认为的)。因此,如果是新的A1,则显示为05/01/1900。当我单击“格式>编号>编号”时,它将显示6。所以数字是正确的,但格式是错误的

我该如何处理这个问题?请记住,真正的文件有数百行日期,我使用循环来分配公式。

您可以在设置内容或公式的同时对单元格进行排序。那么在

ss.getRange(1,1).setFormula('=MONTH(D1);
这可能成为

ss.getRange(1,1).setFormula('=MONTH(D1)').setNumberFormat("0")
您可以与
一起使用。setNumberFormat(numberFormat)
与您在图纸中可能使用的相同

除了解决方案之外,最好在此处设置3个单元格(并与之关联),而不是一次设置一个公式,您可以通过一次调用设置所有三个公式

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"]);

如果6不是你想要的,那么你想要的结果是什么?我需要它在不手动单击格式的情况下显示6。谢谢,它可以工作!我对谷歌脚本非常陌生,所以所有这些提示对我来说意义重大。只有一个问题——最后一行给出了某种错误。无法将数组转换为对象[]。忘记将其包装为数组。从手机内存中编写代码而不进行测试的缺点。