我是Google脚本的新手,我正在尝试创建一个宏,该宏将根据给定的日期自动过滤电子表格。但是,当我尝试重新设置日期格式时,我总是收到错误消息。第二行导致错误,“找不到方法formatDate(object,string,string)”
这在我脚本的其他地方都针对单个单元格值起作用,但不适用于此数组。如何将所有日期重新格式化为所需的格式?
var filterMonthRange = sh.getRange('B2:B'+sh.getLastRow()).getValues();
var filterMonthRange = Utilities.formatDate(filterMonthRange, "GMT", "MMMMM YYYY");
MMMMM YYYY
的格式。如果我的理解是正确的,那么这个答案怎么样?请认为这只是几个可能的答案之一。
C0]的[date
必须是日期对象。错误的原因是使用数组而不是日期对象。
在此模式下,从单元格“ B2:B”中检索的值由Utilities.formatDate(date, timeZone, format)
转换。
请按如下所示修改脚本。
从:Utilities.formatDate()
至:var filterMonthRange = Utilities.formatDate(filterMonthRange, "GMT", "MMMMM YYYY");
var filterMonthRange = filterMonthRange.map(function(e) {return [Utilities.formatDate(e[0], "GMT", "MMMMM YYYY")]});
是2维数组,类似于filterMonthRange
。请注意这一点。在此模式下,将单元格“ B2:B”的格式修改为[["January 2020"],,,]
。
MMMMM YYYY
var filterMonthRange = sh.getRange('B2:B'+sh.getLastRow());
filterMonthRange.setNumberFormat("mmmm\" \"yyyy");
如果我误解了你的问题,而这不是你想要的方向,我深表歉意。