Count如果在不同的工作簿范围内

我一直试图找出这个问题的根源很长一段时间,但无济于事。

我正在计算在另一个工作簿中出现特定文本的实例数(在这种情况下,实例是“42.1”,工作簿名称将包含在Filename1中)。 出于某种原因,当我直接在表单中执行countif时,会得出正确答案(应该是2)。 但是每当我运行下面的代码,它给了我3。

所有的引用都显示OK,因为我手动调用另一个工作簿中的每个值,并且没有问题。 能否请你帮忙 ?

请注意CounttIfV,它基本上等价于应用函数CountIf和I可以互换使用。


'manually define the latest S&OP input file filename = Application.GetOpenFilename Shapes("DisplayFilename").TextFrame.Characters.Text = filename 'activate the S&OP Workbook Filename1 = Split(filename, "\")(UBound(Split(filename, "\"))) Workbooks.Open (Filename1) Workbooks(Filename1).Activate 'define the correct S&OP worksheet regardless of the date For Each ws_mould In ActiveWorkbook.Worksheets If ws_mould.Name Like "*Mould*" Then Worksheets(ws_mould.Name).Activate active_ws = ws_mould.Name End If Next ws_mould Workbooks(Filename1).Activate Set CellRange = Workbooks(Filename1).Worksheets(active_ws).Range(Worksheets(active_ws).Cells(27, 45), Worksheets(active_ws).Cells(53, 45)) 'NumBlades = Application.WorksheetFunction.CountA(CellRange) NumBlades = Module3.COUNTIFv(CellRange, "??42.1#*") Shapes("DisplayFilename").TextFrame.Characters.Text = active_ws