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

Excel application.match返回一个不存在的值,excel,vba,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 lastC

我在这方面还不是很好,但我正在努力做到这一点没有复制粘贴代码。。。不确定这是不是最好的主意

我试图在两列中搜索到不同的值,如果两列都匹配,则返回不同的值。最后,我将从大约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匹配,但只有第210行与test和Sheet1.Cells(5、13).Value匹配

在第一个循环中vCELL变为10,然后执行else部分,在第二个循环中vCELL变为60,然后永不更改。我确信我的编码很差,这是一个促成因素,但任何帮助都将是值得的