Apps Scripts问题:数据未写入指定列(期望列7而非列5)
解决Google Apps Script写入列不生效的问题
针对你遇到的修改列号后仍写入原列的问题,按以下步骤排查:
确保代码保存并重新部署
修改Google Apps Script后,必须点击编辑器右上角的「保存」按钮。如果脚本是作为Web应用部署的,还需要重新发布新版本:选择「部署」→「部署为Web应用」→勾选「新版本」→更新部署,否则运行的依然是旧代码逻辑。核对工作表对象一致性
你提到用var last = sh.getLastRow()获取最后一行,但代码中调用的是sheet.getRange(last, 7, 1, 1)——这里sh和sheet可能指向不同的工作表。如果sh是其他表的对象,last对应的行在sheet中可能恰好对应第5列的旧数据,造成未修改的错觉。统一工作表对象即可:// 明确指定工作表,确保所有操作指向同一表 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("你的目标表名"); var last = sheet.getLastRow(); // 使用同一个sheet对象获取最后一行查看日志确认实际操作单元格
代码中已包含Logger.log('rangeApprove: ' + rangeApprove.getA1Notation());,执行后进入「查看」→「日志」,检查输出的单元格标记:如果是Gxx(第7列),说明代码已生效,可能是你误看了列;如果还是Exx(第5列),证明代码未更新。检查是否有其他代码覆盖数据
排查脚本其他分支(比如拒绝状态的处理逻辑),看是否存在其他写入第5列的代码,或是后续操作覆盖了第7列的内容。
另外确认:Google Sheets列号对应规则是第1列=A,第5列=E,第7列=G,你设置的7是正确的列参数。
内容的提问来源于stack exchange,提问作者Smith
相关产品推荐
相关产品推荐

