我是Google脚本的新手,我正在尝试创建一个宏,该宏将根据给定的日期自动筛选电子表格。但是,当我试图重新格式化日期时,我总是会得到一个错误。第二行导致错误,“无法找到方法formatDate(对象、字符串、字符串)”。
这在我的脚本中的其他地方对单个单元格值起作用,但不适用于这个数组。如何将所有日期重新格式化为所需的格式?
var filterMonthRange = sh.getRange('B2:B'+sh.getLastRow()).getValues();
var filterMonthRange = Utilities.formatDate(filterMonthRange, "GMT", "MMMMM YYYY");发布于 2020-01-05 00:02:13
MMMMM YYYY格式。如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一。
date of Utilities.formatDate(date, timeZone, format)必须是date对象。错误的原因是使用数组而不是日期对象。
模式1:
在这种模式中,从单元格"B2:B“检索的值使用Utilities.formatDate()进行转换。
修改脚本:
请按以下方式修改您的脚本。
发自:
var filterMonthRange = Utilities.formatDate(filterMonthRange, "GMT", "MMMMM YYYY");至:
var filterMonthRange = filterMonthRange.map(function(e) {return [Utilities.formatDate(e[0], "GMT", "MMMMM YYYY")]});filterMonthRange是像[["January 2020"],,,]那样的二维数组。请小心这个。模式2:
在这种模式中,单元格"B2:B“的格式被修改为MMMMM YYYY。
示例脚本:
var filterMonthRange = sh.getRange('B2:B'+sh.getLastRow());
filterMonthRange.setNumberFormat("mmmm\" \"yyyy");参考文献:
如果我误解了你的问题,而这不是你想要的方向,我道歉。
https://stackoverflow.com/questions/59591052
复制相似问题