Vlookup函数针对不同的行单元格返回相同的结果

时间:2018-08-09 02:31:10

标签: excel-vba vlookup

我正在尝试获得以下结果:

expected result

当前,我的vbc脚本为我提供了这一点:

the current vba code generated result

这是制作vlookup的第一张纸

Sheet1 that is used for the vlookup

Sub Suivi()

With ActiveSheet
.Unprotect Password:="capreit"
Rows("2:" & Rows.Count).ClearContents
Worksheets("Suivi Déménagement").Cells.Borders.LineStyle = xlNone

Dim i As Integer


j = 2
For i = 4 To Sheets("Tableau").Range("A4").SpecialCells(xlLastCell).Row

    If Sheets("Tableau").Cells(i, 2).Value = "Nouveau locataire" Or Sheets("Tableau").Cells(i, 2).Value = "Décès" Or Sheets("Tableau").Cells(i, 2).Value = "Skip" And Evaluate("OR(ISNUMBER(MATCH({""*-*""},{""" & Sheets("Tableau").Cells(i, 1).Value & """},0)))") Then

        Sheets("Suivi Déménagement").Cells(j, 1) = Sheets("Tableau").Cells(i, 1)
        Sheets("Suivi Déménagement").Cells(j, 2).Formula = "=IFERROR(VLookup($A2,Tableau!$A:$T,4,FALSE),"""")"
        Sheets("Suivi Déménagement").Cells(j, 3).Formula = "=IFERROR(VLookup($A2,Tableau!$A:$T,3,FALSE),"""")"
        Sheets("Suivi Déménagement").Cells(j, 4).Formula = "=IFERROR(VLookup($A2,Tableau!$A:$T,2,FALSE),"""")"
        Sheets("Suivi Déménagement").Cells(j, 5).Formula = "=IFERROR(VLookup($A2,Tableau!$A:$T,18,FALSE),"""")"
        Sheets("Suivi Déménagement").Cells(j, 6).Formula = "=IFERROR(VLookup($A2,Tableau!$A:$T,19,FALSE),"""")"

  j = j + 1

      End If

        Next i

1 个答案:

答案 0 :(得分:0)

您使用的是相同的vlookup,具有相同的值和相同的条件,但预期结果不同。

我相信您的特定问题与“ $ A2”有关。这应该是动态的。下一行应该是$ A3,然后是$ A4,依此类推。

您可以通过将vlookup当作字符串来实现。在$ A之后将其断开以使用您的变量,然后重新加入该字符串。

例如:“ ... RROR(VLookup($ A”&j&“,Tabl ....”