Zwei markierte Spalten in VBA als Variable einlesen

kornickel

Grünschnabel
Hallo,

ich bin neu in VBA (Excel 2013) und suche nach einer Lösung, Werte in zwei Markierten Spalten als Bezeichner und Variable zu speichern.

Dabei soll in einem Excel-Sheet eine beliebige Anzahl an Zeilen, jedoch immer zwei Spalten markiert werden. Auch die Position des Markierten Bereichs ist beliebig auf dem Arbeitsblatt. In der ersten Spalte stehen dann die Variablen, in der zweiten Spalte die dazugehörigen Werte. Diese sollen dann in VBA als Variablen gespeichert werden, welche ich dort dann weiterverarbeiten möchte.

Kann mir jemand helfen?

Beste Grüße
Kornelius
 

Yaslaw

alter Rempler
Moderator
Als VBA-Variabeln kannst du sie nicht direkt erstellen. Aber du kannst sie in eine Collection schreiben und sie dann von dort auslesen.

Visual Basic:
Public Sub readVar()
    Dim rng As Range
    Dim vars As New Collection
    Dim rowNr As Long
    
    Set rng = Selection
    
    'Prüfen ob es 2 Spalten sind
    If rng.Columns.Count < 2 Then
        MsgBox "Die Markierung muss mindestens 2 Spalten sein", vbCritical
        Exit Sub
    End If
    
    'Jede Zeile in die Collection schreiben
    For rowNr = 1 To rng.Rows.Count
        vars.Add rng(rowNr, 2).Value, rng(rowNr, 1).Value
    Next rowNr
    
    'Mach was
    'Inhalt der "Variable" a ausgeben
    MsgBox "Die Variable a hat den Wert &" & vars("a")
    
End Sub