15. december 2011 - 22:22Der er
8 kommentarer og 1 løsning
Array med datoer skriver dem i Amerikansk format
Hej Alle
Jeg har en array med datoer som skrives mm-dd-yyyy, men jeg vil gerne have at det bliver skrevet, som dd-mm-yyyy. Kan man definere sin array med dette datoformat?
Min array er i format dd-mm-yyyy. datoer = array("01-01-2012","01-02-2012" ..."01-12-2012","01-01-2013", ...)
Hmm, hvis jeg forstår dig ret - skal cellen bare formateres til det korrekte dato format. Højre klik på en celle, vælg "formater celler", og vælg det ønskede dato format. Du kan eks. gøre dette med "optag macro" - så har du formateringerne i VB. Håber det hjælper - ellers prøver vi igen!
Jeg kan ikke formatere cellerne og få det ønskede resultat. Månederne er dage og omvendt, så når jeg formaterer cellerne står jeg med samme problem. Tak fordi du gider at hjælpe!
Det er måske ikke så kønt, men løser det problemet?
Sub MMDDTEST() MsgBox (MMDDHack("01-02-2012")) End Sub
Function MMDDHack(strDate) As String Dim tmpMM As String Dim tmpDD As String Dim tmpYYYY As String tmpMM = Mid(strDate, 1, 2) tmpDD = Mid(strDate, 4, 2) tmpYYYY = Right(strDate, 4) MMDDHack = tmpDD & "-" & tmpMM & "-" & tmpYYYY End Function
Jeg endte med at ændre alle datoerne for jeg blev nødt til at få det til at virke uden så meget bøvl :) Jeg tænkte at det var nemmere at acceptere at den ville have det i Amerikansk format end at forstå det bagvedliggende.. Det irriterer mig dog stadig at jeg ikke helt forstår det :) Men nu virker det i hvert fald!
Tak fordi du gad at hjælpe. Det sætter jeg stor pris på! Kan du ikke sende et svar, så jeg kan give dig point?
Ps. Nedenfor er et svar jeg har lavet på et andet spørgsmål, der kan du se hvordan man traverserer gennem felter. Hvis du har suplerende spørgsmål, må du lige sige til:
Option Explicit ' Purpose: Loop row, column on sheet 2 and copy data to sheet 1 ' Parameter: None Sub CopySheet2toSheet1() Dim sourceSheet As Worksheet ' Sheet to copy data from Dim destinationSheet As Worksheet ' Sheet to insert data to Dim maxColumn As Long ' Number of columns in sheet Dim maxRow As Long ' Number of rows in sheet Dim rowCount As Long ' Var to loop trough rows Dim colCount As Long ' Var to loop trough columns
' Initialization Set sourceSheet = ThisWorkbook.Worksheets(2) ' If reference by name: worksheets("Sheet2") Set destinationSheet = ThisWorkbook.Worksheets(1) ' If reference by name: worksheets("Sheet1") Call applicationInit ' Turns off screenupdating and calculation maxRow = LastRow(sourceSheet) maxColumn = LastColumn(sourceSheet) destinationSheet.Cells.Clear ' Clears destination sheet
' Logic For rowCount = 1 To maxRow Step 1 For colCount = 1 To maxColumn Step 1 destinationSheet.Cells(rowCount, colCount) = "Copied: " & sourceSheet.Cells(rowCount, colCount) Next Next
' Termination MsgBox (sourceSheet.Name & " copied to " & _ destinationSheet.Name & ": " & _ "(rows, columns) = (" & maxRow & ", " & maxColumn & ")") Call applicationEnd ' Turns on screenupdating and calculation End Sub ' Purpose: Turns of stuff to increase performance ' Parameter: None Sub applicationInit() Application.Calculation = xlCalculationManual Application.ScreenUpdating = False ' Update off -> speeds up processing End Sub ' Purpose: Turns on stuff when work completed ' Parameter: None Sub applicationEnd() Application.ScreenUpdating = True ' Update on Application.Calculation = xlCalculationAutomatic ' Calculation on End Sub ' Purpose: Return number of rows on worksheet ' Parameter: curSH - Sheet to work on Public Function LastRow(curSH As Worksheet) As Long LastRow = curSH.UsedRange.Rows.Count End Function ' Purpose: Return number of columns on worksheet ' Parameter: curSH - Sheet to work on Public Function LastColumn(curSH As Worksheet) As Long LastColumn = curSH.UsedRange.Columns.Count End Function
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.