Мой VBA Vlookup возвращается N / A. Что я делаю не так? - PullRequest
0 голосов
/ 07 мая 2020

Итак, у меня есть список, который был предварительно собран, и сейчас я пытаюсь добавить к нему еще из другой книги, которая у меня есть. Я решил, что могу использовать VBA для создания макроса для выполнения VLookup для извлечения и заполнения добавленных полей.

Мой VBA:

Option Explicit
Sub CompareUntimed()
    Dim wb As Workbook
    Dim utsheet As Worksheet
    Dim utlastrow, f9lastrow, J As Long
    Dim f9sheet As Worksheet
    Dim ctr As Integer
    Set wb = Workbooks.Open(get_user_specified_filepath())
    Set utsheet = wb.Sheets(2)
    utlastrow = utsheet.Cells(Rows.Count, "A").End(xlUp).Row
    Set f9sheet = ThisWorkbook.Sheets("Part List")
    f9lastrow = f9sheet.Cells(Rows.Count, "A").End(xlUp).Row
    For J = 2 To f9lastrow
        f9sheet.Range("G" & J) = Application.VLookup(f9sheet.Range("H" & f9lastrow), utsheet.Range("S2:S" & utlastrow), 17, False)
        f9sheet.Range("F" & J) = Application.VLookup(f9sheet.Range("H" & f9lastrow), utsheet.Range("S2:S" & utlastow), 10, False)
    Next J
End Sub

Это рабочая книга, из которой я получаю # N / A вместо правильных значений enter image description here

Это рабочая книга, которую я пытаюсь сопоставить и взять значения из enter image description here

Я пытаюсь использовать созданные мной столбцы UniqueID, которые являются последним столбцом в каждой книге, и я пытаюсь добавить даты и изменить столбцы в свою новую книгу.

1 Ответ

1 голос
/ 08 мая 2020
Sub CompareUntimed()
    Dim wb As Workbook
    Dim utsheet As Worksheet
    Dim utlastrow, f9lastrow, J As Long
    Dim f9sheet As Worksheet
    Dim ctr As Long

    Set wb = Workbooks.Open(get_user_specified_filepath())
    Set utsheet = wb.Sheets(2)

    Set f9sheet = ThisWorkbook.Sheets("Part List")
    f9lastrow = f9sheet.Cells(Rows.Count, "A").End(xlUp).Row

    For J = 2 To f9lastrow
        m = Application.Match(f9sheet.Range("H" & J), utsheet.Columns("S"), 0)
        If Not IsError(m) Then
            f9sheet.Range("G" & J).Value = utsheet.Cells(m, "K").Value
            f9sheet.Range("F" & J).Value = utsheet.Cells(m, "R").Value
        Else
            f9sheet.Range("F" & J).Resize(1,2).Value = "???"
        End If
    Next J
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...