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

使用VBA编辑个人会计SUMIFS公式,下移Sheet3单元格引用

解决SUMIFS公式中Sheet3单元格引用逐行下移的问题

你原公式里的Sheet3B4是笔误,得先改成Sheet3!B4,不然公式本身会出错。下面给你两个实用办法解决行号下移的问题:

方法1:写个简单VBA宏自动改

录制宏只能固定操作,没法动态调整行号,自己写个宏就行:

  1. 打开Excel按Alt+F11打开VBA编辑器
  2. 右键你的工作簿,选「插入」→「模块」
  3. 粘贴下面的代码:
Sub ShiftSheet3RefsDown()
    Dim cell As Range
    Dim formulaTxt As String
    Dim rowNum3 As Integer, rowNum4 As Integer
    
    ' 这里默认修改选中的单元格,要是公式固定在某个单元格,把Selection改成Range("E6")
    Set cell = Selection
    
    formulaTxt = cell.Formula
    ' 提取B3和B4的行号
    rowNum3 = CInt(Mid(formulaTxt, InStr(formulaTxt, "Sheet3!B") + 8, 1))
    rowNum4 = CInt(Mid(formulaTxt, InStr(InStr(formulaTxt, "Sheet3!B") + 9, formulaTxt, "Sheet3!B") + 8, 1))
    
    ' 替换成下一行的行号
    formulaTxt = Replace(formulaTxt, "Sheet3!B" & rowNum3, "Sheet3!B" & rowNum3 + 1)
    formulaTxt = Replace(formulaTxt, "Sheet3!B" & rowNum4, "Sheet3!B" & rowNum4 + 1)
    
    cell.Formula = formulaTxt
End Sub
  1. 返回Excel,把这个宏添加到快速访问工具栏,下次需要改的时候,选中公式单元格点一下按钮就行

方法2:用INDIRECT函数手动控行号

不想碰VBA的话,把行号单独存到一个单元格里,比如用G1存起始行(初始填3),然后把公式改成:

=SUMIFS(Table3[Amount],Table3[Category],E6,Table3[Date Entered],">"&INDIRECT("Sheet3!B"&G1),Table3[Date Entered],"<"&INDIRECT("Sheet3!B"&G1+1))

每次要下移一行,直接把G1的数字加1就好,不用动公式本身。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 04:59:58