03. august 2008 - 19:49
Der 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)
tak for hjælpen
03. august 2008 - 23:44
#2
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
05. august 2008 - 05:59
#3
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..
point på vej - opgaven er klaret smart !
05. august 2008 - 08:10
#5
Dagen
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