Ich möchte aus einem Zellbereich, welchen ich vorab über ein Objektvariable "RgBeispiel" definiert habe, mit Hilfe der Eigenschaft "Cells()" einen Wert auslesen.
Als Argument für "Zeile" und "Spalte" in der Eigenschaft "Cells (Zeile, Spalte)" setze ich keine Zahlen ein, sondern Variablen "l" und "k".
Den Variablen "l" und "k" wird vorab der Wert der Indizes für "Zeile" und "Spalte" über die Funktion "Match" zugewiesen.
Anbei Ausschnitte aus dem Code mit Kommentaren:
Dim k As Integer, l As Integer, m As Integer
Dim strSBeispiel As String, strZBeispiel As String
Dim RgSpalteBeispiel As Range, RgZeileBeispiel As Range, RgBeispiel As Range
Set RgBeispiel = ThisWorkbook.Worksheets("Beispiel").Range("B1:DL11")
Set RgSpalteBeispiel = ThisWorkbook.Worksheets("Beispiel").Range("B1:B11")
Set RgZeileBeispiel = ThisWorkbook.Worksheets("Beispiel").Range("B1:DL1")
k = Application.WorksheetFunction.Match(strSBeispiel, RgSpalteBeispiel, 0)
l = Application.WorksheetFunction.Match(strZBeispiel, RgZeileBeispiel, 0)
'Welcher Datentyp ist k und l? Ergebnis: beide sind Integer!!!
'Welchen Wert haben k und l durch Match erhalten? Ergebnis: l=3 und k=35.
Range("A11") = TypeName(k)
Range("B11") = k
Range("A12") = TypeName(l)
Range("B12") = l
'Zuweisen des Zellenwert (3, 35) in Bereich "RgBeispiel".
'Ergebnis bei Code "m = RgBeispiel.Cells(l, k)" = 0 (Null; ist immer Null auch bei anderen l und k über Match).
'Ergebnis bei Code "m = RgBeispiel.Cells(3, 35)" = 63
m = RgBeispiel.Cells(l, k)
'Zusatzinfo:
'Bei folgenden Code wird ebenfalls der richtige Wert (63) zurückgegeben.
'l=3
'k=35
'm = RgBeispiel.Cells(l, k)
Danke für die Hilfe im Voraus.
Christian