Как я могу использовать функцию сопоставления индекса в VBA, чтобы найти значения в файле CSV, а затем импортировать эти значения в сопоставленный индекс в ячейке в Excel? Скажем, у меня есть файл CSV, который содержит следующий текст с разделителями-запятыми:

lookup1, 2

lookup2, 3

И следующие данные в Sheet2 в Excel:

B2 = lookup1

C2 = 0

B3 = lookup2

C3 = 0

Как использовать сопоставление индекса, чтобы найти значение 2 во втором столбце для "lookup1" в файле CSV, а затем изменить значение 2 в ячейке C2 в Excel?

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

Sub Tester()

    Dim arr1

    arr1 = CsvToArray(Application.GetOpenFilename)

    Debug.Print TestLookup(arr1, "lookup1", 1, 2)

End Sub

Function TestLookup(arr, val, lookincol As Integer, returnfromcol As Integer)
    Dim r
    r = Application.Match(val, Application.Index(arr, 0, lookincol), 0)
    If Not IsError(r) Then
        TestLookup = arr(r, returnfromcol)
    Else
        TestLookup = "Not found" 'or some other "error" value
    End If
End Function

Function CsvToArray(filepath As String) As Variant
    Dim wb As Workbook
    Application.ScreenUpdating = False
    Set wb = Application.ActiveWorkbook
    CsvToArray = wb.Sheets("Sheet2").Range("C2").CurrentRegion.Value
End Function

Спасибо!

1 ответ1

0

Ваш CSV-файл должен быть отформатирован с соответствующим заголовком.

В простом тексте это будет выглядеть так:

lookup1,lookup2
2,3

Прокомментировал бы, но пока не получил достаточно высокий рейтинг.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .