繁体   English   中英

如何使我的 SumIf Function 运行到 VBA 代码上的最后一个数据范围

[英]How do I make my SumIf Function run through until last range of my data on VBA Code

这是我的 SumIf 公式

=SUMIF($C$26:$C$43,$C$6,D26:D43)

C6 是固定的,所以我锁定它,这样如果我拖动它,单元格就不会运行

问题是范围和总和范围

范围 (C26) 和总和范围 (D26) 的起始行列始终相同但最后一行不相同,因为我的数据量并不总是相同(有时直到 100 有时更少)

如何更改 SumIf 的 VBA 公式以匹配完全相同数量的数据?

这是我的 SumIf VBA 代码(从记录中得到)

"=SUMIF(R26C3:R43C3,R6C3,R[20]C:R[37]C)"

请尝试下一种方法。 该代码必须确定 C:C 中的最后一个单元格,然后使用它。 有更多的可能性来做到这一点。 正如下面的代码一样,或者直接在字符串公式中使用,替换(现有的)43 ( "=SUMIF($C$26:$C$" & lastR...

Sub formulaUntilLast()
  Dim lastR As Long, rngC As Range, RngD As Range, strFormula As String
  lastR = ActiveSheet.Range("C" & rows.count).End(xlUp).row
  Set rngC = Range("C26:C" & lastR)
  Set RngD = Range("D26:D" & lastR)

  strFormula = "=SUMIF(" & rngC.Address & ",$C$6," & rngC.Address & ")"
  Debug.Print strFormula
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM