Transposing Array mit Datumsänderungen Datumsangaben
Wenn ich ein eindimensionales Array mit Datumsangaben transponiere, um sie als Ganzes auf ein Blatt zu drucken, werden einige Datumsangaben gegenüber dem @ -Zeichen geänderdd/mm/yy
zumm/dd/yyyy
.
Insbesondere, wenn der Tag des Monats:
ist kleiner oder gleich 12, z. B.January 2, 2016 (02/01/16)
, oderMay 11, 2016 (11/05/16)
, dann wird das Datum im Datumsformat gedrucktmm/dd/yy
und ist nach rechts ausgerichtet. ist größer als oder gleich 13, z. B.April 23, 2016 (23/04/16)
, oderDecember 17, 2016 (17/12/16)
, dann wird das Datum im Datumsformat gedrucktdd/mm/yyyy
und ist linksbündig ausgerichtet.Wenn ich eine for-Schleife verwende, um jedes Datum separat auszudrucken, oder wenn ich das Array nicht transponiere und jedes Datum in der ersten Zeile jeder Spalte drucke, werden alle Datumsangaben im Format @ gedruckdd/mm/yy
und alle Daten sind richtig ausgerichtet.
Kann jemand erklären, warum dies passiert, ob dies normal ist oder ob es sich um einen Bug / eine Funktion handelt.
Zusätzliche InformationIch habe
Windows 8.1 (Englisch USA)Office 365 Student (Englisch USA) (Excel 2016 32 Bit)Locale Einstellung: NiederlandeCodeOption Explicit
Sub TransposeDatesArray()
Dim arrDates() As Date
Dim i As Variant
ReDim arrDates(0)
For i = CDate("Januari 01, 2016") To CDate("December 31, 2016")
If UBound(arrDates) = 0 Then
ReDim arrDates(1 To 1)
Else
ReDim Preserve arrDates(1 To UBound(arrDates) + 1)
End If
arrDates(UBound(arrDates)) = i
Next
With ThisWorkbook.Worksheets(1)
.Cells.Delete
.Cells(1, 1).Resize(UBound(arrDates)).Value = Application.Transpose(arrDates)
.Cells(1, 2).Resize(UBound(arrDates)).Value2 = Application.Transpose(arrDates)
.Cells(1, 3).Resize(UBound(arrDates)).Formula = Application.Transpose(arrDates)
For i = LBound(arrDates) To UBound(arrDates)
.Cells(i, 4).Value = arrDates(i)
.Cells(i, 5).Value2 = arrDates(i)
.Cells(i, 6).Formula = arrDates(i)
Next
End With
End Sub
Ergebnis