have a set of SUMIF
formulas that I need to adjust frequently & the only thing I need to adjust is the 3rd part of it. The 3rd part, or sum range, columns need to be shifted over to the right by 1 column each time the macro is run.
For example, my formula can be:
=SUMIF($A$1:$A$10,$A15,!$C$1:$C$10)
- I would like to be able to run a macro that would adjust the above
formula so that instead of adding fromColumn C1:C10
, it would add
Column D1:10
. - Then the next time I run the macro, the formula will change again to Column E and so-on.
This formula would then be dragged down to all necessary rows below with the only thing changing is the 2nd part’s row #.
Is there a simple way to accomplish this?
Thanks in advance!
Here is the VB code that I got from recording a macro that changes the 3rd part, but as of now it will only change it to that specific column whenever I run it.
ActiveCell.FormulaR1C1 = "=SUMIF('WorksheetA'!R5C1:R159C1,RC1,'WorksheetA'!RC13:R159C13)"
This code stores the number of times it has been run in a public variable LngCNt
. Note that the count will be set to 0 each time the file opens
The LngCnt
variable is used to increment the formula ie
first run =SUMIF($A$1:$A$10,$A15,$C$1:$C$10)
second run =SUMIF($A$1:$A$10,$A15,$D$1:$D$10)
third run =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
Tags: excelexcel, vba