2017-02-10 15 views
1

'データベースの番号行が毎月変更され、変数lastCodeが変更されます。 「私はSUMIFSで変数& lastCodeを入れたときに、私は手動で私は、エラーを受け取るしかし、すなわち$M$22510$O$22510で最後の行を入れると、コードは問題なく動作しますSUMIFS-VBAを使用してデータベースを集計しようとしています

実行時間」1004'application定義またはオブジェクトが定義されました。

下記のコードで私のSUMIFSの問題点を教えてください。あなたが探しているものを

Sub SumGroups() 
    Worksheets("Database").Activate 
    Dim lastCode, lastFiltCode As Integer 
    Dim Formula As String 
    'Determine Last Row in Column O (Unfiltered Codes) 
    lastCode = Range("O" & Rows.Count).End(xlUp).Row 
    'Filter Unique Codes into Column A Sheet2 
    Range("O1:O" & lastCode).AdvancedFilter Action:=xlFilterCopy, _ 
     CopyToRange:=Sheet2.Range("A1"), Unique:=True 
    'Determine last Row in Column A (Filtered Codes) 
    Worksheets("Sheet2").Activate 
    lastFiltCode = Sheet2.Range("A" & Rows.Count).End(xlUp).Row 

    'Place SUMIF Formula in Column B Sheet2 

    Worksheets("Sheet2").Range("B2:B" & lastFiltCode).Formula = _ 
     "=SUMIFS(Database!$M$2:$M$ & lastCode,Database!$O$2:$O$ & lastCode,A2)" 
End Sub 
+1

VBAで式を連結する必要があります。式自体: '" = SUMIFS(データベース!$ M $ 2:$ M $ " &lastCode& "、データベース!$ O $ 2:$ O $"&lastCode& "、A2)" ' – Comintern

+0

ありがとうございました!それは動作します。あなたは学者であり紳士です。 – Anthony

答えて

1

次のとおりです。この理由は、あなたが「引用符」に何かを入れたときにVBAは単なるテキストとしてそれを読みますです

"=SUMIFS(Database!$M$2:$M$" & lastCode & ",Database!$O$2:$O$" & lastCode & ",A2)"

、あなたはDebug.Print "=SUMIFS(Database!$M$2:$M$ & lastCode,Database!$O$2:$O$ & lastCode,A2)"を使用することができますし、 Ctrl + GキーまたはVBAキーを押しながら "View"> "Immidiate Window"を選択すると、Excelに正確に何が入力されているかが表示されます

+0

説明ありがとうMr.Burns – Anthony

関連する問題