需要协助编写 Excel 宏-VBA。

3
我有一组 SUMIF 公式,需要经常调整,而我需要调整的唯一部分是第三部分。每次运行宏时,第三部分或总和范围列需要向右移动1列。
例如,我的公式可以是: =SUMIF($A$1:$A$10,$A15,!$C$1:$C$10) 我想能够运行一个宏,以便调整上述公式,使其不再从 Column C1:C10 加和,而是加和 Column D1:10。下一次运行宏时,公式会再次更改为 Column E 等等。
此公式将向下拖动到所有必要的行中,唯一变化的是第二部分的行号。
是否有一种简单的方法来实现这一点?
先谢谢了!
以下是我从记录宏得到的 VB 代码,用于更改第3部分,但目前只有在运行时才会将其更改为具体列。 ActiveCell.FormulaR1C1 = "=SUMIF('WorksheetA'!R5C1:R159C1,RC1,'WorksheetA'!RC13:R159C13)"

更改公式很简单。关键是增量部分。你的电子表格布局中是否有任何内容可以自动提供列扩展 - 否则,这个值将需要在文件中存储。 - brettdj
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

非常感谢,我现在会尝试一下并看看能否让它正常工作。 - user2094096

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接