Функция VLOOKUP в vba - PullRequest
       7

Функция VLOOKUP в vba

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

Я использую следующее неэффективное решение, чтобы найти совпадающие значения в двух книгах, чтобы обновить диапазон в первой книге.Мне было интересно, как использовать массив Vlookup для этого (мне потребовалось много времени, чтобы понять, как написать приведенные ниже макросы, поскольку я являюсь новичком VBA).

Sub MoveData()
'
' MoveData Macro
' moves data from DCC Status Report to Overdue Biennials Sheet

'

    Windows("Overdue Biennials 12.18.xlsm").Activate
    Dim lastB As Long
    lastB = Range("B" & Rows.Count).End(xlUp).Row
    Dim i As Long
    i = (lastB + 1)
    Dim r1 As Range
    Set r1 = Range("B" & i)

    Windows("Camden DCC Status.xlsx").Activate
    Range("A2:E2").Select
    Range(Selection, Selection.End(xlDown)).Select

    Selection.Copy Destination:=r1
    Workbooks("Camden DCC Status.xlsx").Close savechanges:=False

End Sub

Sub UpdateData()
'
'finds duplicate value in column C and pastes the data in columns D-F into the 'first instance of the value in column C
'

    Dim lastA As Long
    lastA = Range("C" & Rows.Count).End(xlUp).Row

    Dim lastB As Long
    lastB = Range("C" & Rows.Count).End(xlUp).Row

    Dim i As Long, j As Long
    Dim r1 As Range, r2 As Range, r3 As Range, r4 As Range
    For i = 2 To lastA
        Set r1 = Range("C" & i)

        For j = 2 To lastB
            Set r2 = Range("C" & j)
            If r1.Value = r2.Value Then
                Set r3 = Range("D" & j, "F" & j)
                Set r4 = Range("D" & i)
                r3.Copy Destination:=r4

                End If
        Next j

    Next i

End Sub
...