我不知道为什么它给了我' 438' - 对象不支持此属性或方法错误,在" Sumif"功能线。
如何在VBA中执行sumif函数?
Application.WorksheetFunction.SumIfs(Range("N2:N" & RSum), Range("C" & rw), Range("S2:S" & RSum))
以下是整个代码:
Sub Macro1()
Dim LR As Integer
Dim rw As Integer
Dim RSum As Integer
LR = Range("C" & Rows.Count).End(xlUp).Row
RSum = Range("n" & Rows.Count).End(xlUp).Row
For rw = 2 To LR
If Not IsEmpty(Range("C" & rw).Value) Then
Range("G" & rw).Value = Application.WorksheetFunction.SumIfs(Range("N2:N" & RSum), Range("C" & rw), Range("S2:S" & RSum))
End If
If Range("G" & rw).Value = 0 Then
Range("G" & rw).Value = "-"
Range("F" & rw).Value = "No"
ElseIf Range("G" & rw).Value <> 0 Then
Range("F" & rw).Value = "Yes"
End If
Next rw
End Sub
Excel Version 2002。
答案 0 :(得分:0)
也许您的第二个和第三个参数已切换?
第二个参数应为Range criteria_range1 ,第三个参数应为 criteria1 。
尝试:
Range("G" & rw).Value = Application.WorksheetFunction.SumIfs(Range("N2:N" & RSum), Range("S2:S" & RSum), Range("C" & rw))
答案 1 :(得分:0)
这似乎是正确的,只需要了解Sumifs公式的标准。 Sumif的顺序是 - 1.Sum_range 2.Criteria_range 3.Criteria等。 所以正确的语法是 -
范围(“G”&amp; rw).Value = Application.WorksheetFunction.SumIfs(范围(“N2:N”和RSum),范围(“S2:S”和RSum),范围(“C”) &amp; rw))
有关更多此类问题,您可以查看 - https://knowledgebase.techandmate.com
谢谢,