Объект не найден в VBA Vlookup - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь vlookup несколько столбцов с другого листа, и я пытаюсь динамически установить диапазон для таблицы vlookup, а затем скопировать и вставить формулу в мой лист значений поиска (который работает)

Любая помощь будет великолепна!

Я попробовал приведенный ниже код, но он не устанавливает значение в FRow или SRow.

Sub test()
    Dim FRow As Long
    Dim SRow As Long
    With Sheets("M2URPN")
        Set FRow = Sheets("M2URPN").Cells(Rows.Count, "A").End(xlUp).Row
    End With
    With Worksheets("M2URPN")
        Set SRow = .sht.Cells(sht.Rows.Count, "G").End(xlUp).Row
    End With
    If Worksheets("RECONCILE").Range("A2") Is Nothing Then
        Worksheets("RECONCILE").Range("A2").FormulaR1C1 = "NO RECORDS"
    Else
        With Worksheets("RECONCILE")
            Range("B2").Formula = "=VLOOKUP(A2,M2URPN!$A$1:$E$" & FRow & ",4,FALSE)"
            Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row).FillDown
            Range("C2").Formula = "=VLOOKUP(A2,M2URPN!$A$1:$E$" & FRow & ",4,FALSE)"
            Range("C2:C" & Range("A" & Rows.Count).End(xlUp).Row).FillDown
        End With
    End If
    If Worksheets("RECONCILE").Range("E2") Is Nothing Then
        Worksheets("RECONCILE").Range("E2").FormulaR1C1 = "NO RECORDS"
    Else
        With Worksheets("RECONCILE")
            Range("F2").Formula = "=VLOOKUP(E2,M2URPN!$G$1:$J$" & SRow & ",4,FALSE)"
            Range("F2:F" & Range("E" & Rows.Count).End(xlUp).Row).FillDown
            Range("G2").Formula = "=VLOOKUP(E2,M2URPN!$G$1:$J$" & SRow & ",3,FALSE)"
            Range("G2:G" & Range("E" & Rows.Count).End(xlUp).Row).FillDown
        End With
    End If

1 Ответ

0 голосов
/ 12 января 2019

Я исправил это как показано ниже:

Sub Vlookup()
    Worksheets("RECONCILE").Activate
    If Worksheets("RECONCILE").Range("A2") = "" Then
        Worksheets("RECONCILE").Range("A2").FormulaR1C1 = "NO RECORDS"
    Else
        With Worksheets("RECONCILE")
            Range("B2").Formula = "=VLOOKUP(A2,M2URPN!$A$1:$E$" & Sheets("M2URPN").Cells(Rows.Count, 1).End(xlUp).Row & ",4,FALSE)"
            Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row).FillDown
            Range("C2").Formula = "=VLOOKUP(A2,M2URPN!$A$1:$E$" & Sheets("M2URPN").Cells(Rows.Count, 1).End(xlUp).Row & ",4,FALSE)"
            Range("C2:C" & Range("A" & Rows.Count).End(xlUp).Row).FillDown
            Worksheets("RECONCILE").Range("B1").Value = "Amount"
            Worksheets("RECONCILE").Range("C1").Value = "Customer Account"
        End With
    End If
    If Worksheets("RECONCILE").Range("E2") = "" Then
        Worksheets("RECONCILE").Range("E2").FormulaR1C1 = "NO RECORDS"
    Else
        With Worksheets("RECONCILE")
            Range("F2").Formula = "=VLOOKUP(E2,M2URPN!$G$1:$J$" & Sheets("M2URPN").Cells(Rows.Count, 7).End(xlUp).Row & ",4,FALSE)"
            Range("F2:F" & Range("E" & Rows.Count).End(xlUp).Row).FillDown
            Range("G2").Formula = "=VLOOKUP(E2,M2URPN!$G$1:$J$" & Sheets("M2URPN").Cells(Rows.Count, 7).End(xlUp).Row & ",3,FALSE)"
            Range("G2:G" & Range("E" & Rows.Count).End(xlUp).Row).FillDown
            Worksheets("RECONCILE").Range("F1").Value = "Amount"
            Worksheets("RECONCILE").Range("G1").Value = "Customer Account"
        End With
    End If
    Worksheets("RECONCILE").Columns(2).NumberFormat = "0"
    Worksheets("RECONCILE").Columns(7).NumberFormat = "0"
    Range("A1:L1").Font.Bold = True
    For Each sht In ThisWorkbook.Worksheets
    sht.Cells.EntireColumn.AutoFit
    Next sht
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...