14.06.2017, 11:59
Hallo,
(alles hier ist beispielhaft, es zählt hier nur das Prinzip)
mit folgendem kleinen Programm konstruiere ich erstmal meine Werte, die ich danach auswerten möchte.
Ausgehend von dem jeweils aktuellen Datum möchte ich nun alle Werte kennzeichnen, die 2 oder 3 Tage zurückliegen.
Das mache ich hiermit:
So weit so gut. Welche Alternativen zur For Each Schleife (ist mir bei großen Datenmengen zu langsam) für eine solche Auswertung gibt es?
Danke schon mal für eure Mühe und Rat im voraus.
(alles hier ist beispielhaft, es zählt hier nur das Prinzip)
mit folgendem kleinen Programm konstruiere ich erstmal meine Werte, die ich danach auswerten möchte.
Code:
Sub Werte_konstruieren()
Dim i%, vbVor, vbNach, vbV, vbN
vbVor = Array("Lili", "Elke", "Pit", "Gert", "Fred", "Tea")
vbNach = Array("Beck", "Lot", "Pop", "Tar", "Reck", "Stur")
'Namen nach Zufallsprinzip schreiben
For i = 1 To 100
vbV = vbVor(WorksheetFunction.RandBetween(0, 5))
vbN = vbNach(WorksheetFunction.RandBetween(0, 5))
Range("A" & i) = vbV & " " & vbN
Next
'Datum nach Zufallsprinzip schreiben
For Each Zelle In Range("a1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
Zelle.Offset(0, 1) = WorksheetFunction.RandBetween(9, 13) & ".06.2017"
Next
End Sub
Ausgehend von dem jeweils aktuellen Datum möchte ich nun alle Werte kennzeichnen, die 2 oder 3 Tage zurückliegen.
Das mache ich hiermit:
Code:
Sub Tagesdifferenzen_Auswerten()
Columns(3).Clear: Columns(4).Clear
For Each Zelle In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
If CDate(Date) - CDate(Zelle.Offset(0, 1)) = 3 Then Zelle.Offset(0, 2) = "3 Tage"
If DateDiff("d", Zelle.Offset(0, 1), CDate(Date)) = 2 Then Zelle.Offset(0, 3) = "2 Tage"
Next
End Sub
Danke schon mal für eure Mühe und Rat im voraus.