application.match返回一个不存在的值

时间:2019-06-25 23:29:58

标签: excel vba

我目前还不擅长此事,但是我试图在没有复制粘贴代码的情况下执行此操作...不确定其最佳想法。

我试图在两列中搜索不同的值,然后在两列匹配时返回不同的值。最后,我将从大约9种不同的工作簿中提取经验。

Dim wbACF As Workbook
Dim wsDiv As Worksheet
Dim rng As Range
Dim WC As String
Dim vCELL As Variant
Dim switch As Variant
Dim nvCell As Variant
Dim lastCell As Variant
Set wbACF = Workbooks("ACF.xls")
WC = Sheet1.Cells(5, 14).Value
nvCell = "A1"
lastCell = "A999"
Set wsDiv = wbACF.Worksheets(WC)
Set rng = wsDiv.Range(nvCell, lastCell)
switch = 1
Do While switch = 1
    vCELL = Application.Match("test", rng, 0)
    If wsDiv.Cells(vCELL, 7).Value = Sheet1.Cells(5, 13).Value Then
        Sheet1.Cells(11, 1).Value = wsDiv.Cells(vCELL, 4)
        switch = 0
    Else
        nvCell = "A" & vCELL + 1
        Set rng = wsDiv.Range(nvCell, lastCell)
    End If
Loop

对于我的测试文件,第10、70、150和210行与测试匹配,但对于test和Sheet1.Cells(5,13).Value仅只有第210行匹配

vCELL在第一个循环中变为10,然后执行else部分,在第二个循环中,vCELL变为60,然后从不改变。我确信我的编码很差,并且是一个促成因素,但是任何帮助都会有所帮助。

0 个答案:

没有答案