gpt4 book ai didi

excel - 为什么转置日期格式为 dd/mm/yy 的数组会将某些日期更改为 mm/dd/yy 格式?

转载 作者:行者123 更新时间:2023-12-04 21:23:05 26 4
gpt4 key购买 nike

行为:

当我转置一个包含日期的一维数组以便将它们完整地打印到一张纸上时,一些日期从 dd/mm/yymm/dd/yyyy .

特别是,当月份中的某天:

  • 小于等于 12,如 January 2, 2016 (02/01/16) , 或 May 11, 2016 (11/05/16) ,则日期以日期格式打印mm/dd/yy并且对齐正确。
  • 大于等于13,如April 23, 2016 (23/04/16) , 或 December 17, 2016 (17/12/16) ,则日期以日期格式打印dd/mm/yyyy并左对齐。

  • 当我使用 for 循环分别打印每个日期,或者我不转置数组并在每列的第一行打印每个日期时,所有日期都以 dd/mm/yy 格式打印并且所有日期都正确对齐。

    附加信息:

    我有:
  • Windows 8.1(美国英语)
  • Office 365 学生版(美国英语)(Excel 2016 32 位)
  • 区域设置:荷兰

  • 代码:
    Option 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

    结果:

    Result

    最佳答案

    在做了一些更多的研究之后,我发现了以下内容:

    似乎 Application.Transpose(arrDate)不仅转置数组,还转置存储为实际日期的日期值。

    考虑日期,42373 (2016 年 1 月 4 日)

  • Debug.Print Format(CDate(42373), "mmmm d, yyyy")
  • 生产 januari 4, 2016
  • Debug.Print Application.Transpose(Format(CDate(42373), "mmmm d, yyyy"))
  • 生产 april 1, 2016

  • 当存储为实际日期时,似乎可以转置日期值。转置有效地从 day/month 重新排序日期至 month/day之后,月变为日,日变为月,因为系统仍然使用 day/month格式。这只能在当月的第 12 天或更少时才能完成,因为在转置后天变成了月份。

    关于excel - 为什么转置日期格式为 dd/mm/yy 的数组会将某些日期更改为 mm/dd/yy 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36043415/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com