Ваш CSV-файл должен быть отформатирован с соответствующим заголовком.
В простом тексте это будет выглядеть так:
lookup1,lookup2 2,3
Прокомментировал бы, но пока не получил достаточно высокий рейтинг.
Как я могу использовать функцию сопоставления индекса в 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
Спасибо!
Ваш CSV-файл должен быть отформатирован с соответствующим заголовком.
В простом тексте это будет выглядеть так:
lookup1,lookup2 2,3
Прокомментировал бы, но пока не получил достаточно высокий рейтинг.