Index

hi alle…

ich habe mir als vba-neuling eine menge schlauer bücher gekauft,aber nichts davon zum thema index.
also: ich möchte eine schleife aufbauen, in der ich alle zellen von zb. a1 … a10 absuche.
ungrfähr so:

for n = 1 to 10
a1+n
next
…oder wie?

gruß
euer nikodemo

Hallo,

dann machen wir es doch gleich in Zeilen (Rows) und Spalten (Cols).

Dim R as integer, C as Integer
For R = 2 To 7
 For C = 2 To 5
 Cells (R, C) = R \* C
 Next
Next

Gruß Rainer

rainer, sehr gut: 1

gruß nikodemo

also, das mit der 1 bleibt.

aber meine zelle heßt nicht „2“, sondern i2.
d.h. i2+schleifenwert. wie heißt die syntax dazu?
weist du da bescheid.
hilfe.
anm.: z.b. , d.h. beim nächsten durchlauf brauche ich "a2, dann a3 usw.

gruß
nikodemo

Hallo NikoDemo.

Ist dein Problem inzwischen gelöst? Habe nicht ganz verstanden, was genau du machen möchtest. Eine einfache Schleife zum Durchsuchen aller Zellen eine Spalte wäre zB auch (hier jetzt Zeilen 1 bis 10):

i=1
do until i=11
'Hier deine Abfrage
i=i+1
Loop

Falls du solange suchen lassen möchtest bis in der Spalte nichts mehr steht, kannst du auch folgende Schleife ansetzen (hier jetzt Spalte A):

i=1
do until range(„A“&i)=""
'Abfrage
i=i+1
Loop

i kannst du natürlich variieren und die Spalte auch

Grüße, Aiko.

Excel-Vba: Cells() und Range() benutzen

aber meine zelle heßt nicht „2“, sondern i2.
d.h. i2+schleifenwert. wie heißt die syntax dazu?
weist du da bescheid.
hilfe.
anm.: z.b. , d.h. beim
nächsten durchlauf brauche ich "a2, dann a3 usw.

Hallo Nikodemo,

du vermischst da Einiges.
Wenn du so gut sein wirst wie Rainer :smile:) kannste auch „&“ und „+“ verwechseln und dich dabei auf den Umwandlungsautomatismus von VB verlassen, bis dahin benutze „&“ und „+“ Regelkonform.

Versuche mal im nachfolgenden Code alle Befehle in der Prozedur „Schwer“ zu analysieren, danach müßte es dir relativ einfach fallen alles in der Prozedur „Normal“ zu verstehen.
Das Ergebnis aller Befehle ist immer „I7“

Btw.: rtfm!

Und Zeilen- und Spaltenvariablen un Excel IMMER als „Long“ deklarieren, egal ob’s nur 256 Spalten sind oder nicht.

Sub Normal()
Dim R As Long, R1 As Long, R2 As Long
R = 7
R1 = 3
R2 = 4
MsgBox Range("I" & R).Address
MsgBox Cells(R, 9).Address
MsgBox Cells(R, "I").Address
MsgBox Range("I" & R1 + R2).Address
MsgBox Cells(R1 + R2, 9).Address
End Sub
'
Sub Schwer()
Dim R As Long
R = 7
MsgBox Range("B3:smiley:" & R).Range("H5").Address
MsgBox Range("X27").Offset(-20, -15).Address
MsgBox Range("I1").Offset(R - 1, 0).Address
MsgBox Range("I" & R).Address
MsgBox Cells(R, 9).Address
MsgBox Cells(R, "I").Address
MsgBox Range(Chr(64 + 9) & R).Address
End Sub

Gruß
Reinhard