You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过脚本为WHATMONTH工作表G列对应行添加动态公式?

实现G列每行自动引用对应行A列的MONTH公式(脚本批量添加)

完全可行,核心是利用表格软件的相对引用特性,直接给目标区域批量设置带相对引用的公式即可,无需手动拼接行号。以下是两种常见场景的脚本实现:

Excel VBA 实现

Sub AddMonthFormula()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("WHATMONTH")
    Dim lastRow As Long
    ' 获取A列最后一行有数据的行号
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    ' 给G2到G[lastRow]批量设置公式,Excel自动适配相对引用
    ws.Range("G2:G" & lastRow).Formula = "=MONTH(A2)"
End Sub

执行后,G2的公式为=MONTH(A2),G3自动变为=MONTH(A3),以此类推。

Google Apps Script 实现(适用于Google Sheets)

function addMonthFormula() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("WHATMONTH");
  // 获取A列有数据的最后一行行号
  const lastRow = sheet.getRange("A:A").getValues().filter(String).length;
  // 定位G2到最后一行的区域(参数:起始行, 起始列, 行数, 列数)
  const targetRange = sheet.getRange(2, 7, lastRow - 1, 1);
  // 批量设置公式,Sheets自动处理相对引用
  targetRange.setFormula("=MONTH(A2)");
}

注意点

你之前批量添加后所有行都引用A2,大概率是脚本中错误使用了绝对引用(比如=MONTH($A$2)),或者通过字符串拼接固定行号的方式给每行单独赋值公式。正确的做法是直接给整个目标区域设置带相对引用的公式,表格软件会自动完成行号的对应调整。

内容的提问来源于stack exchange,提问作者The Denster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:55:32