Ok, etwas muss ich jetzt mal loswerden, denn es macht mich langsam irre. ;D
Für Index-Variablen bei Schleifen ist es stark verbreitet i, j und k zu nehmen. Die drei reichen der Regel nach auch aus.
Also: (Formel 3:)
Dim wks1 As Excel.Worksheet
Dim wks2 As Excel.Worksheet
Dim i As Long
Dim j As Long
Dim k As Long
Set wks1 = Worksheets("Sheet1")
Set wks2 = Worksheets("Sheet2")
For i = 4 To 3951
'Spalten in wks1
For j = wks1.Columns("DTY").Column To wks1.Columns("FXH").Column
'Spalten in wks2
For k = wks2.Columns("F").Column To wks2.Columns("BCO").Column
If wks1.Cells(j, i).Value = "100" Then
wks2.Cells(k, i).Interior.ColorIndex = 19
End If
Next
Next
Next
Falls dir das nicht übersichtlich genug ist, dann benenne die Variablen detailierter, aber sowas wie zzza, zzzb, ... ist einfach nur Kauderwelsch und hilft überhaupt nicht dabei das Makro verständlich zu halten. (was soll das heißen - 'ZeileZeileZeile A' ? hat es überhaupt einen Sinn?)
Also, alternativ: (Formel 3:)
Dim wks1 As Excel.Worksheet
Dim wks2 As Excel.Worksheet
Dim SpalteWks1 As Long
Dim SpalteWks2 As Long
Dim i As Long
Set wks1 = Worksheets("Sheet1")
Set wks2 = Worksheets("Sheet2")
For i = 4 To 3951
'Spalten in wks1
For SpalteWks1 = wks1.Columns("DTY").Column To wks1.Columns("FXH").Column
'Spalten in wks2
For SpalteWks2 = wks2.Columns("F").Column To wks2.Columns("BCO").Column
If wks1.Cells(SpalteWks1, i).Value = "100" Then
wks2.Cells(SpalteWks2, i).Interior.ColorIndex = 19
End If
Next
Next
Next
Ließt man sich dieses Makro nun durch, dann kann man sofort erkennen
-
in Wks1 wird über die Spalten DTY bis FXH iteriert - Variable ist SpalteWks1
-
in Wks2 wird über die Spalten DTY bis FXH iteriert - Variable ist SpalteWks2
-
der Spalten-Index wird in der innersten Schleife als Zeilen-Index verwendet, d.h. hier scheint es sich wohl um Transponierte Daten zu handeln (oder es ist ein Fehler)
-
anhand des Zellen-Inhalts von Wks1 soll ein Farbwert in Wks2 gesetzt werden (wie gesagt, transponiert; Punkt 3)
Um dieses Makro jetzt zu verstehen, brauch ich nicht mal mehr Kommentare. (und so sollte es i.d.R. auch sein)
Das man die Spalten-Indizes sich in Variablen merken kann, war nur ein Beispiel von mir (in einer deiner ersten Beiträge hier im Forum).
Wirklich nötig ist das aber nie.
Zurück zum eigentlichen.
Wo drückt der Schuh genau? (Ich sehe hier nur drei Makro-Schnipsel)
Grüße
|