2017-02-16 15 views
0

データ収集に「前週のアプリケーション」というシートを使用し、同じシート内のカウントを更新する以下のコードを使用します。ブック内の複数のシートにわたるVBAコードの実行

ボタンを作成しましたが、このコードをボタンで実行しようとしています。実行に

「オブジェクトが必要」として、私はラインでエラーが発生します

[W5] = wf.CountIf(.Range("I:I"), "Trophy") 

マイコード:

Sub Prevcount() 

Sheets("Previous Week apps") 

With ActiveWorkbook.Worksheets("Previous week apps") 
    [W5] = wf.CountIf(.Range("I:I"), "Trophy") 
End With 

With ActiveWorkbook.Worksheets("Previous week apps") 
[W7] = wf.CountIfs(.Range("I:I"), "Trophy", .Range("E:E"), "COMPATIBLE") 
End With 

With ActiveWorkbook.Worksheets("Previous week apps") 
[W9] = wf.CountIfs(.Range("I:I"), "Trophy", .Range("F:F"), "COMPATIBLE") 
End With 

With ActiveWorkbook.Worksheets("Previous week apps") 
[W11] = wf.CountIfs(.Range("I:I"), "Trophy", .Range("Q:Q"), "UG") 
End With 

End With 
End Sub 
+0

Sheets(「前の週のアプリケーション」)を「シートを使用する」(「前の週のアプリケーション")'(あなたのコードの最後に 'End With'とマッチする)、そうであれば' With'ブロックを使って何をしているのですか? – YowE3K

+0

@ YowE3Kだから私はそれを 'Sheets(" Before Week apps ")'に変更すべきですか? –

答えて

1

ショートバージョンを試してみてください(あなたのコードを持っているThisWorkbook、とActiveWorkbookを置き換え) :

Sub Prevcount() 

With ThisWorkbook.Worksheets("Previous week apps") 
    .Range("W5").Value = WorksheetFunction.CountIf(.Range("I:I"), "Trophy") 
    .Range("W7").Value = WorksheetFunction.CountIfs(.Range("I:I"), "Trophy", .Range("E:E"), "COMPATIBLE") 
    .Range("W9").Value = WorksheetFunction.CountIfs(.Range("I:I"), "Trophy", .Range("F:F"), "COMPATIBLE") 
    .Range("W11").Value = WorksheetFunction.CountIfs(.Range("I:I"), "Trophy", .Range("Q:Q"), "UG") 
End With 

End Sub 
+0

オブジェクトの取得には '.Range(" W5 ")の値が必要です。値= wf.CountIf(.Range(" I:I ")、" Trophy ")' –

関連する問題