Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Cells mit Variablen geht nicht

Cells mit Variablen geht nicht
04.01.2020 22:56:53
Christian
Hallo ich bin Anfänger bei vba und habe folgendes Problem.
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Cells mit Variablen geht nicht
04.01.2020 23:39:15
GerdL
Hallo Christian,
musst du die Variablen l und k tauschen oder wo soll jetzt das Problem sein?
Gruß Gerd
AW: Cells mit Variablen geht nicht
05.01.2020 10:13:25
Christian
Hallo GerdL,
das Problem liegt darin, dass der Befehl "m = RgBeispiel.Cells(l, k)" mit den Variablen k und l nicht funktioniert.
Anmerkung:
Der Befehl funktioniert nicht, wenn k und l über "Match" Werte zugewiesen werden.
Werden k und l über z.B. "k=35" Werte zugewiesen funktioniert der Befehl "m = RgBeispiel.Cells(l, k)".
Gruß
Christian
AW: Cells mit Variablen geht nicht
05.01.2020 11:09:33
Christian
Hallo Gerd,
jetzt sehe ich es auch.
Falsche bzw. irreführende Nomenklatur und dementsprechend habe ich Spalte und Zeile vertauscht.
"RgSpalteBeispiel" ist der Bereich zum Auffinden des Index der Zeile und sollte besser "RgZeileBeispiel" heißen (und umgekehrt).
War wohl schon zu spät für klares Denken.
Problem gelöst.
Danke
Gruß
Christian
Anzeige
AW: Cells mit Variablen geht nicht
05.01.2020 11:21:50
GerdL
Hallo Christian,
suchst du von B1 nach rechts die Spalte, bekommt B die Spaltennummer eins beim Match!
Ist der Suchbegriff ein String, kannst du nur nach Texten suchen.
Sub test()
Dim S As Integer, Z As Integer, m As Integer
Dim strSBeispiel As String, strZBeispiel As String
Dim RgSpalteBeispiel As Range, RgZeileBeispiel As Range, RgBeispiel As Range
Cells(3, 36) = 64
Range("B3") = "Zeile"
Range("AJ1") = "Spalte"
strSBeispiel = "Spalte"
strZBeispiel = "Zeile"
Set RgBeispiel = Range("B1:DL11")
Set RgSpalteBeispiel = Range("B1:B11")
Set RgZeileBeispiel = Range("B1:DL1")
S = Application.WorksheetFunction.Match(strSBeispiel, RgZeileBeispiel, 0)
Z = Application.WorksheetFunction.Match(strZBeispiel, RgSpalteBeispiel, 0)
MsgBox RgBeispiel.Cells(Z, S).Address
MsgBox Cells(Z, S).Address
MsgBox RgBeispiel.Cells(Z, S).Value
End Sub

Gruß Gerd
Anzeige

63 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige