[VBA] Schleifen über Zeilen

25/12/2009 - 17:02 von qdl | Report spam
Hallöle,

ich möchte eine Funktion schreiben, die zwei Zeilenstücke als Parameter
übergeben bekommt, z.B. A1:J1 und A5:J5.

Jetzt möchte ich eine Schleife über eine der Zeilen, sagen wir die
untere, laufen lassen. Wenn dann z.B. für den Wert von C5 eine bestimmte
Bedingung erfüllt ist, möchte ich mit der entsprechenden Zelle der
oberen Zeile, als C1, etwas berechnen.

Übergebe ich jetzt die beiden Zeilen als ParamArray hàngen die beide in
einem Range zusammen und ich weiß nicht genau, wie ich die in sagen wir
zwei Listen oder àhnliches zerlegen kann.

Ich hoffe meine Ausführungen sind halbwegs verstàndlich und mir kann
jemand einen Tipp geben. Dafür wàre ich dankbar.

hs
 

Lesen sie die antworten

#1 Andreas Killer
26/12/2009 - 08:01 | Warnen spam
Holger Schulz schrieb:

ich möchte eine Funktion schreiben, die zwei Zeilenstücke als Parameter
übergeben bekommt, z.B. A1:J1 und A5:J5.

Jetzt möchte ich eine Schleife über eine der Zeilen, sagen wir die
untere, laufen lassen. Wenn dann z.B. für den Wert von C5 eine bestimmte
Bedingung erfüllt ist, möchte ich mit der entsprechenden Zelle der
oberen Zeile, als C1, etwas berechnen.


Mit einer UDF wird das nicht gehen, weil eine UDF übergebene Bereiche
nicht modifizieren darf.

Übergebe ich jetzt die beiden Zeilen als ParamArray hàngen die beide in
einem Range zusammen und ich weiß nicht genau, wie ich die in sagen wir
zwei Listen oder àhnliches zerlegen kann.


Hier kann ich Dir nicht folgen.

Ich hoffe meine Ausführungen sind halbwegs verstàndlich und mir kann
jemand einen Tipp geben. Dafür wàre ich dankbar.


Ist recht einfach, man kann ein Range genau wie ein Array ansprechen,
wobei die obere linke Zelle des Range immer die Indices 1,1 hat:

Sub Test()
Dim Bereich1 As Range, I As Long
Set Bereich1 = Range("A1:J1")
Set Bereich2 = Range("A5:J5")

For I = 1 To Bereich1.Columns.Count
If Bereich2(1, I) = 3 Then Bereich1(1, I) = "Hier"
Next
End Sub

Andreas.

Ähnliche fragen