Ich verwende immer andere Bezeichnungen da ich die Formeln öfters benötige und daher doppelte Bezeichnungen habe was zu einer Fehlermeldung führt.
Wie meinst du das, "öfters benötigt und daher doppelte Bezeichnungen"?
Du kannst Variablen öfters verwenden.
1 2 3 4 5 6 7 8 9 10 11 12 | Sub Test()
Dim i As Long
For i = 1 To 100
Next
For i = 1 To 34
Next
For i = -100 To -1
Next
End Sub
|
Außerdem ist die Variable i wie auch jede andere, in der Prozedur deklarierte (Dim) Variable, nur in dieser Prozedur (Test) bekannt.
In jeder anderen Prozedur kanns du i erneut definieren und verwenden.
Es zeigt keinen Fehler beim Starten aber das Excel hängt sich leider auf. Evtl. zu viel verlangt?
Beim Programmieren muss man sich immer auch darum Gedanken machen was man da eigentlich genau treibt.
Diese Schleifen hier
1 2 3 | For i = 4 To 3951
For SpalteWks1 = wks1.Columns( "DTY" ).Column To wks1.Columns( "FXH" ).Column
For SpalteWks2 = wks2.Columns( "F" ).Column To wks2.Columns( "BCO" ).Column
|
heißt im Endeffekt (3951-4) * (4688-3249) * (1445-6) = 8.173.135.787? Aktionen. natürlich braucht der Rechner dafür ne ganze weile Zeit. ;-)
Wenn man sich das dann überlegt hat, sollte man Gedanken darüber machen, ob es vielleicht Möglichkeiten zur Optimierung gibt.
Aber zumindest sollte man verstehen, dass es dauern kann, und das man der Sache Zeit geben muss.
In diesem Fall wäre der erste und einfachste Gedanke:
1 2 3 4 5 6 7 8 | For i = 4 To 3951
For SpalteWks1 = wks1.Columns( "DTY" ).Column To wks1.Columns( "FXH" ).Column
For SpalteWks2 = wks2.Columns( "F" ).Column To wks2.Columns( "BCO" ).Column
Next
Next
DoEvents
Next
|
Dann scheint es auch nicht mehr so, als ob Excel sich aufgehängt hat / nicht mehr reagiert.
Die Formel besteht daraus, ich verplane im Sheet1 für meine Arbeit "Farbcodes", welche dann im Sheet 2 erscheinen sollen in den Zellen.
DTY bis FXH 4 bis 3951 ist sozusagen 1:1 F bis BCO 4 bis 3951
Verstehe leider nicht genau was du damit meinst.
|