如何使我的 SumIf 函数 运行 一直到 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:$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," & rngC.Address & ")"
  Debug.Print strFormula
End Sub