Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

FormulaR1C1 - VLOOKUP mit Variable

Forumthread: FormulaR1C1 - VLOOKUP mit Variable

FormulaR1C1 - VLOOKUP mit Variable
Peter
Guten Abend
Mir ist nicht klar, weshalb mein Code "Variante 1" funktioniert, jedoch "Variante 2" nicht. Bei Variante 2 habe ich die Zahl 2 der Long Variable spVal zugewiesen und diese dann verwendet. Weshalb gibt dies ein Anwendungs- oder objektdefinierter Fehler?
Gruss, Peter
''Variante 1
With Range("vk_Titel")
.FormulaR1C1 = "VLOOKUP(RC2 ,KuSH_Daten,COLUMN(KuSH_Titel),FALSE)"
End With
''Variante 2
Dim spVal As Long
spVal = 2
With Range("vk_Titel")
.FormulaR1C1 = "VLOOKUP(RC " & spVal & " ,KuSH_Daten,COLUMN(KuSH_Titel),FALSE)"
End With
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: FormulaR1C1 - VLOOKUP mit Variable
08.06.2011 16:10:13
Rudi
Hallo,
die erste kann auch nicht klappen. Da fehlt ein =
.FormulaR1C1 = "=VLOOKUP(....
möglicherweise stört das Leerzeichen hinter RC
.FormulaR1C1 = "=VLOOKUP(RC" & spVal & " ,KuSH_Daten,COLUMN(KuSH_Titel),FALSE)"
Gruß
Rudi
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VLOOKUP mit Variablen in FormelR1C1 in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und aktiviere den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsm)“ und wähle „Einfügen“ > „Modul“.
  3. Schreibe den VBA-Code:

    • Füge den folgenden Code ein, um die VLOOKUP-Funktion mit FormulaR1C1 zu verwenden:
    Sub BeispielVlookup()
       Dim spVal As Long
       spVal = 2
    
       With Range("vk_Titel")
           .FormulaR1C1 = "=VLOOKUP(RC" & spVal & ", KuSH_Daten, COLUMN(KuSH_Titel), FALSE)"
       End With
    End Sub
  4. Führe den Code aus:

    • Drücke F5 oder klicke auf „Ausführen“, um das Skript zu starten.

Häufige Fehler und Lösungen

  • Fehler: Anwendungs- oder objektdefinierter Fehler
    Lösung: Stelle sicher, dass du das Leerzeichen hinter RC in der Formel entfernt hast. Der korrekte Code sollte wie folgt aussehen:

    .FormulaR1C1 = "=VLOOKUP(RC" & spVal & ", KuSH_Daten, COLUMN(KuSH_Titel), FALSE)"
  • Fehler: Fehlendes Gleichheitszeichen
    Lösung: Achte darauf, dass die Formel mit einem = beginnt, wie im Beispiel oben.


Alternative Methoden

Eine alternative Methode zur Verwendung von VLOOKUP in einer Zelle ist die Verwendung von ActiveCell.FormulaR1C1. Hier ein Beispiel:

Sub AlternativeVlookup()
    Dim spVal As Long
    spVal = 2

    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC" & spVal & ", KuSH_Daten, COLUMN(KuSH_Titel), FALSE)"
End Sub

Diese Methode kann nützlich sein, wenn du die Formel in die aktuell aktive Zelle einfügen möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Anwendung von VLOOKUP mit FormulaR1C1 in Excel VBA:

  1. Einfache VLOOKUP-Abfrage:

    Sub SimpleVlookup()
       Dim spVal As Long
       spVal = 3
    
       With Range("A1")
           .FormulaR1C1 = "=VLOOKUP(RC" & spVal & ", Datenbereich, 2, FALSE)"
       End With
    End Sub
  2. VLOOKUP mit dynamischem Spaltenindex:

    Sub DynamicVlookup()
       Dim spVal As Long
       Dim spaltenIndex As Long
    
       spVal = 4
       spaltenIndex = 2
    
       With Range("B1")
           .FormulaR1C1 = "=VLOOKUP(RC" & spVal & ", Datenbereich, " & spaltenIndex & ", FALSE)"
       End With
    End Sub

Tipps für Profis

  • Verwende COLUMN(): Anstatt die Spaltennummer hart zu kodieren, kannst du die COLUMN()-Funktion verwenden, um die Spalten dynamisch zu bestimmen. So bleibt der Code flexibel, wenn sich die Struktur deiner Daten ändert.

  • Verwende Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler beim Ausführen deines VBA-Codes zu vermeiden. Ein einfaches Beispiel ist:

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0

FAQ: Häufige Fragen

1. Warum funktioniert meine VLOOKUP-Formel nicht?
Die häufigsten Fehler sind ein fehlendes Gleichheitszeichen oder ein Leerzeichen nach RC. Überprüfe deine Formel auf diese Punkte.

2. Was ist der Unterschied zwischen FormulaR1C1 und Formula?
FormulaR1C1 verwendet das R1C1-Referenzformat, während Formula das A1-Referenzformat verwendet. Es ist nützlich, FormulaR1C1 zu verwenden, wenn du mit variablen Zellreferenzen arbeitest.

3. Wie kann ich VLOOKUP in einer Schleife verwenden?
Du kannst eine Schleife verwenden, um VLOOKUP in mehreren Zellen anzuwenden, indem du die Zielzelle innerhalb der Schleife änderst. Hier ein Beispiel:

Sub LoopVlookup()
    Dim i As Integer
    For i = 1 To 10
        Range("A" & i).FormulaR1C1 = "=VLOOKUP(RC2, KuSH_Daten, 2, FALSE)"
    Next i
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige