在工作簿中跨多个工作表运行VBA代码

我使用下面的代码,利用工作表“上周应用程序”进行数据收集,并更新同一工作表中的计数。

我创build了一个button,我试图通过button来运行这个代码。

在执行时,我得到了错误作为“所需的对象”行

[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 

尝试使用简短版本(用ThisWorkbookreplaceActiveWorkbook ,在那里有代码):

 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