2017-02-16 48 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(「Previous Week apps」)''With Sheets(「Previous Week apps 「)(與代碼末尾的End With匹配),如果是這樣,那麼你在用With代碼塊做什麼 - 你的代碼中沒有任何東西正在使用它。 – YowE3K

+0

@ YowE3K所以我應該改變它'與表(「上週應用程序」)? –

回答

1

嘗試短版(更換ActiveWorkbookThisWorkbook,你有你的代碼) :

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」)' –

相關問題