01. juni 2016 - 10:05Der er
4 kommentarer og 1 løsning
Makro med array af datoer
Hej,
jeg har et problem jeg ikke kan finde ud af.
Jeg har ved at gennemgå en liste af data lagt nogle datoer i et array. Herefter skal jeg så finde den tidligste/mindste dato i mit array. Men uanset, hvad jeg har forsøgt ender det hele tiden med at jeg får 00:00:00 tilbage som svar.
Jeg har gennemgået mit array og datoerne bliver gemt korrekt.
Håber I kan hjælpe.
Min kode er som følger: Sub prep()
Dim earlyinc As Date Dim lrowi As Long Dim i As Long Dim cnt As Long Dim incdates() As Date Dim formula As String
'find sidste række på I lrowi = Ark6.Cells(Ark6.Rows.Count, "A").End(xlUp).Row
'find datoer for åbne sager
For i = 2 To lrowi If InStr(1, Worksheets("I").Range("D" & i), "Assigned") > 0 Or InStr(1, Worksheets("I").Range("D" & i), "New") > 0 Or InStr(1, Worksheets("I").Range("D" & i), "In Progress") > 0 Or InStr(1, Worksheets("I").Range("D" & i), "pending") > 0 Then cnt = cnt + 1 ReDim Preserve incdates(1 To cnt) As Date incdates(cnt) = Worksheets("I").Range("A" & i).Value End If Next i
Jeg har dog fundet en "Workaround", hvorfor den virker kan jeg ikke forklare, når den anden så ikke gør det.
Hvis jeg smider mine datoer fra mit array ind i arket i kolonne AA og så kører application.min(Worksheets("I").range("AA1:AA"&cnt)) så virker det fint.
Min teori må være at der er et 0 gemt i mit array, men er vi ikke enige om at jeg har defineret mit array til at gå fra 1 to cnt, hvorfor incdates(0) ikke skulle være der?
array incdates() skal ikke være date det skal være long
herefter kan jeg køre minimum funktionen på mit array, og gemme det i min variabel earlyinc, der er defineret som dato, hvorefter det korrekte svar kommer frem.
Måske application.min() ikke fungerer på variable af typen date?!?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.