需要有关excel macro-vba的帮助

时间:2013-06-12 03:48:08

标签: excel excel-vba vba

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

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

  • 我希望能够运行一个可以调整上述内容的宏 公式,以便不添加Column C1:C10,而是添加 Column D1:10
  • 然后,下次运行宏时,公式将再次更改为E列,依此类推。

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

有一种简单的方法可以实现这一目标吗?

提前致谢!

这是我通过录制更改第3部分的宏来获得的VB代码,但是到目前为止,它只会在我运行时将其更改为该特定列。

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

1 个答案:

答案 0 :(得分: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