VBA - 在所有工作表中执行Application.VLookup并在匹配时进行计数

问题描述 投票:0回答:1

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

我需要在所有工作表中执行Vlookup并在获得我需要的值时进行计数。我做了一个代码来计算工作表的数量并从1开始“填充”到最大工作表数,但是当我在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”。

谢谢。

excel vba vlookup
1个回答
0
投票

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

更加孤立的测试是明确测试包含True的单元格的内容是否等于字符串True。

EG

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

......或者相反,

    =IF(AB3 = TRUE, 1, 0)

......并观察该测试的结果。

如果这不起作用,用第二列中的内容替换为“TRUE”不可预测的内容是否切实可行?

© www.soinside.com 2019 - 2024. All rights reserved.