VBA - 在所有工作表中执行应用程序.VLookup并在匹配时计数



我有一个包含 82 个工作表的工作簿。

我需要在所有工作表中进行 Vlookup,并在获得所需值时计数。 我做了一个代码来计算工作表的数量,并从 1 到最大工作表数开始一个"for",但是当我在 Application.vlookup 中引用此计数时它不起作用。

这是我的代码:

Function NUMBEROFTIMES(lookup_value)
NUMBEROFTIMES = 0
Dim WS_Count As Integer
Dim I As Integer
' Set WS_Count equal to the number of worksheets in the active
' workbook.
WS_Count = ActiveWorkbook.Worksheets.Count
' Begin the loop.
For I = 1 To WS_Count
If Application.VLookup(lookup_value, Worksheets(I).Range("A5:AB401"), 28, False) = "True" Then
NUMBEROFTIMES = NUMBEROFTIMES + 1
End If
Next I
End Function

在所有工作表中,我必须搜索我放入"lookup_value"的值,返回的是单词"True"。

谢谢。

TRUE 在 Excel 中很棘手,因为它可能表示正布尔值 1。 尝试将代码中的"True"更改为 1 并重新运行。

一个更孤立的测试是显式测试包含 True 的单元格的内容是否等于字符串 True。

例如

=IF(AB3 = "True", 1, 0)

。或者,相反,

=IF(AB3 = TRUE, 1, 0)

。并观察该测试的结果。

如果这不起作用,您是否将第 28 列中的内容替换为比"TRUE"更不可预测的内容?