03. august 2008 - 19:49Der er
4 kommentarer og 1 løsning
nem måde at få dato ud af tekststreng (VBA)
hi
jeg skal have en dato ud af xx antal tekstfiler.
jeg har fået læst tekstfilerne ind i variablerne, men nu kommer problemstillingen.
Datoen står f.eks. som:
blabla bla 21. Januar 2009 bla bla
dette skal laves om til en tekststreng 210109
hvordan klares det på en nem og let måde (jeg havde oprindeligt brugt mid og instr i en sammenblanding, men den kan ikke klare at tekststrengen er kortere nogen gange (1. maj 2009)
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
Prøv at køre strengen igennem denne funktion strengen kommer tilbege i Datoskift
Public Function Datoskift(Ord As String) As String Dim Dag As String, Måned As String, År As String Dim D As Variant, F As Integer, I As Integer, L As Integer D = Array("Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December")
For I = 0 To 11 F = InStr(1, Ord, D(I)) If F > 0 Then L = Len(D(I)) Dag = Mid(Ord, F - 4, 2) If I + 1 < 10 Then Måned = "0" & I + 1 Else Måned = I + 1 End If År = Mid(Ord, F + L + 1, 4) Exit For End If Next GL = Dag & ". " & D(I) & " " & År ny = Dag & Måned & Right(År, 2) Datoskift = Replace(Ord, GL, ny, 1) End Function
den tilgang havde jeg ikke tænkt på (2) - 1 kan ikke bruges, da strengen nogen gange er 1. maj 2009 bla :) koden har dog kun svaghed, den er casesensitiv - hvilket dog nemt kan klares med lcase..
if val(Mid(Ord, F - 4, 2)) > 9 then Dag = Mid(Ord, F - 4, 2) else Dag = "0" & val(Mid(Ord, F - 4, 2)) end if
Synes godt om
Ny brugerNybegynder
Din løsning...
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.