2016-07-04 15 views
1

"Sumif"機能行でオブジェクトがこのプロパティまたはメソッドエラーをサポートしない理由を知りません。Sum IF 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 

エクセルバージョン2002

+0

がしばしばapplication.worksheetfunctionが動作しない、application.sumifsを試してみてくださいcheck-できる複数のこのような質問について。 – Phil

+0

Excel 2002以降、たくさんの機能がアップデートされていますので、新しいバージョンを使用することをお勧めします。多くの人がExcel 2007以上を使用しているため、より多くの人がお手伝いできます。 – Michael

答えて

0

はたぶんあなたの2番目と3番目のパラメータを切り替えていますか?

第二パラメータが範囲criteria_range1ことsould、および3番目のパラメータは、criteria1でなければなりません。

試してみてください。

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

投稿した直後に、まだ私に同じメッセージを与える –

+0

@ L.Fimそれはまだそのエラーがあるので、あなたの更新されたコードで元の投稿を編集してください。この方法で他のユーザーはこれを離れて他の理由に焦点を当てることができます –

+0

私はそれを更新しました。 –

0

これはちょうどあなたがSUMIFS式の基準を理解する必要が正しいようです。 Sumifsの順番は- です。1.Sum_range 2.Criteria_range 3.Criteriaなど。 ":N N2" & RSUM)、範囲( "S2:S" & RSUM) したがって、正しい構文は

範囲.Valueの= Application.WorksheetFunction.SumIfs( "G" & RW)(範囲(BE-なります、レンジ( "C" & RW))

あなたは https://knowledgebase.techandmate.com

おかげで、

関連する問題