2016-07-04 96 views
1

我不知道爲什麼它給我'438' - 對象不支持此屬性或方法錯誤,在「Sumif」函數行中。總和如果VBA錯誤'438' - 對象不支持此屬性或方法

如何在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版本2002

+0

嘗試application.sumifs,往往application.worksheetfunction不起作用。 – Phil

+0

自Excel 2002以來,已經更新了很多,我建議使用更新的版本,以便將來有更多的人可以幫助你,因爲大多數人至少擁有Excel 2007. – Michael

回答

0

也許你的第二個和第三個參數進行切換?

第二個參數是前人的精力範圍標準範圍,和第三個參數應該是標準1

嘗試:

Range("G" & rw).Value = Application.WorksheetFunction.SumIfs(Range("N2:N" & RSum), Range("S2:S" & RSum), Range("C" & rw)) 
+0

我發現後立即修復了它,但是仍然給我相同的msg –

+0

@ L.Fim請使用您的更新代碼編輯您的原始帖子,因爲它仍然有錯誤。這樣其他用戶將能夠遠離這一點,並專注於其他原因 –

+0

我已更新它。 –

0

只是你需要了解SUMIFS公式的標準這似乎是正確的。 Sumifs的順序是: 1.Sum_range 2.Criteria_range 3.Criteria等。 因此正確語法將是─

範圍( 「G」 & RW)。價值= Application.WorksheetFunction.SumIfs(範圍( 「N2:N」 & RSUM),範圍( 「S2:S」 & RSUM) ,範圍( 「C」 & RW))

更多這樣的問題,你可以入住 https://knowledgebase.techandmate.com

感謝,

相關問題