Ihre CSV-Datei muss mit einem richtigen Header formatiert werden.
Im Klartext würde es so aussehen:
lookup1,lookup2 2,3
Würde kommentieren, aber noch nicht hoch genug eingestuft werden.
Wie kann ich eine Indexübereinstimmungsfunktion in VBA verwenden, um Werte in einer CSV-Datei zu suchen und diese Werte in den übereinstimmenden Index in einer Zelle in Excel zu importieren? Angenommen, ich habe eine CSV-Datei, die den folgenden durch Komma getrennten Text enthält:
Lookup1, 2
Lookup2, 3
Und die folgenden Daten in Sheet2 in Excel:
B2 = Nachschlagen1
C2 = 0
B3 = Lookup2
C3 = 0
Wie verwende ich eine Indexübereinstimmung, um den Wert 2 in der zweiten Spalte für "Lookup1" in der CSV-Datei zu finden und dann den Wert in Zelle C2 in Excel in 2 zu ändern?
Ich habe den folgenden Code ausprobiert, aber er funktioniert nicht und ich glaube nicht, dass er in der Excel-Tabelle nach dem Wert sucht, zu dem der Wert passen muss
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
Vielen Dank!
Ihre CSV-Datei muss mit einem richtigen Header formatiert werden.
Im Klartext würde es so aussehen:
lookup1,lookup2 2,3
Würde kommentieren, aber noch nicht hoch genug eingestuft werden.