3

有一组SUMIF我需要经常调整的公式,我唯一需要调整的是它的第三部分。每次运行宏时,第三部分或总和范围列需要向右移动 1 列。

例如,我的公式可以是: =SUMIF($A$1:$A$10,$A15,!$C$1:$C$10)

  • 我希望能够运行一个宏来调整上述公式,这样Column C1:C10它就不会添加 from ,而是添加 Column D1:10.
  • 然后下次我运行宏时,公式将再次更改为 E 列,依此类推。

然后这个公式将被拖到下面所有必要的行,唯一改变的是第二部分的行#。

有没有一种简单的方法可以做到这一点?

提前致谢!

这是我从记录更改第 3 部分的宏中获得的 VB 代码,但到目前为止,只要我运行它,它只会将其更改为该特定列。

ActiveCell.FormulaR1C1 = "=SUMIF('WorksheetA'!R5C1:R159C1,RC1,'WorksheetA'!RC13:R159C13)"

4

1 回答 1

3

此代码将它运行的次数存储在一个公共变量LngCNt中。请注意,每次文件打开时计数将设置为 0

LngCnt变量用于增加公式,即

第一次运行 =SUMIF($A$1:$A$10,$A15,$C$1:$C$10)
第二次运行 =SUMIF($A$1:$A$10,$A15,$D$1:$D$10)
第三次运行=SUMIF($A$1:$A$10,$A15,$E$1:$E$10)

Public LngCnt As Long
Sub Macro2()
  ActiveCell.FormulaR1C1 = "=SUMIF(R1C1:R10C1,R[4]C1,R1C" & 3 + LngCnt & ":R10C" & 3 + LngCnt & ")"
  LngCnt = LngCnt + 1
End Sub
于 2013-06-12T05:40:13.447 回答