Google Sheets宏使用setValue设置单元格值不生效问题
代码错误修正方案
核心问题
你代码中的setValue调用方式错误:setValue是Range对象的方法,需要通过括号传参执行,你当前的写法是直接给cell对象的setValue属性赋值,完全没有触发单元格写入逻辑,所以数据不会写入目标单元格。
修正后的完整代码
function Macro1() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sheet1'), true); var today = new Date(); var prevMonth = Utilities.formatDate(today, 'GMT+1', 'MMMM yy'); var cell = spreadsheet.getRange('G12'); // 修正:将赋值改为方法调用 cell.setValue(prevMonth); Logger.log(prevMonth); Logger.log(cell.getValue()); };
可选优化建议
如果需要避免时区差异导致的月份计算错误,可以将时区参数替换为表格自身的时区,无需硬编码GMT+1:
var prevMonth = Utilities.formatDate(today, spreadsheet.getSpreadsheetTimeZone(), 'MMMM yy');
内容的提问来源于stack exchange,提问作者Neha
相关产品推荐
相关产品推荐

