Namen in Excel ansprechen
10.02.2019 13:37:27
Tobias
ich habe (noch eine) Frage zu dem o. g. Thema.
Es geht ja, wie gesagt, um einen eigenen Sudoku-Solver :-)
Mit dem Code
For Each rngZelle In Range("Rechteck2")
MsgBox rngZelle
Next rngZelle
den ich im Netz gefunden habe, kann ich ja nun auf (insoweit) alle Bereiche eingehen und er liest mir brav alle Werte einzeln vor.Also - "Rechteck2" bezieht sich auf einen Bereich von logischerweise 9 Felder (a 3x3). Wenn das Programm also den 4. Durchlauf macht, zeigt er mir eben den Wert der Zeile 2, Spalte 1 vor (mal so gesagt).
Alles ganz schick.
Nun möchte ich aber, dass ich auch über EINEN Wert dann auch den Wert auslesen kann oder setzen.
also a la "rngZelle(4) = 3", dass er eben den 4. Wert im aktuellen Range("Rechteck2") (2. Zeile, 1. Spalte) setzt.
Und mit "Msgbox rngZelle(4)" soll er mir eben konkret den 4. Wert anzeigen.
Bisher habe ich aber nur gefunden, dass ich das mit "Zeile, Spalte" lösen könnte - und das ist ja nicht Sinn und Zweck der Geschichte.
Wie kann man das elegant lösen?
Weiterhin finde ich folgendes kurios:
Wenn ich schon über "Zeile, Spalte" gehe und bei "Rechteck2" sage "Zeile = 1, Spalte = 6" (obwohl das Teil ja nur 3 Spalten breit ist), zeigt er mir den Wert der Zelle an, welche 3 Felder rechts vom Ende des Rechtecks ist.
Also, wenn "Rechteck2" jetzt wäre ($E$2:$G$4) und ich sage
lies bitte aus bzw. in dem Beispiel: schreibe rein (wenn leer)
Set bereich = Range("Rechteck2")
Zeile = 1
Spalte = 6
If bereich(Zeile, Spalte) = Empty Then bereich(Zeile, Spalte) = "3"
dann schreibt er den Wert in Zelle J2, obwohl J2 gar nicht zum Range gehört.Was ist da der Hintergrund?
LG aus Dresden
Tobias