【问题标题】:Need assistance with excel macro- vba需要excel宏的帮助-vba
【发布时间】:2013-06-12 21:16:45
【问题描述】:

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

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

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

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

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

提前致谢!

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

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

【问题讨论】:

  • 更改公式很简单。诀窍是增量部分。您的 sprteadsheet 布局中的任何内容是否自动提供列扩展名 - 否则此值将需要存储在文件中的某个位置

标签: excel vba


【解决方案1】:

此代码将运行次数存储在公共变量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

【讨论】:

  • 非常感谢,我现在就试一试,看看能不能让它工作。
猜你喜欢
  • 1970-01-01
  • 2018-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多