【问题标题】:Copying British dates into American Format将英国日期复制成美国格式
【发布时间】:2018-05-31 09:23:38
【问题描述】:

我有 VBA 代码,它可以选择一系列日期并将它们插入到另一个工作表中。

Set data = csvFile.Sheets(sheetname).Range("$A$1:$F$" & lastRow)
newPlan.Sheets(client & "_CSV").Range("$A$1:$F$" & lastRow).Value = data.Value

日期是 DD/MM/YY 格式,当它们被插入到新文件时,它们会被赋予 MM/DD/YYYY 格式,但前提是日期可以存在。

例如 30/05/18 将被插入,因为没有第 30 个月,但 01/05/18 将被插入为 05/01/2018。

我不介意复制日期的格式,只要它们是一致的。如果它们是 MM/DD/YYYY 格式,我可以稍后将它们转换为正确的格式。

我尝试在从 CSV 文件复制之前设置数字格式,但没有帮助:

csvFile.Sheets(sheetname).Range("$D$1:$D$" & lastRow).NumberFormat = "dd/mm/yyyy"

【问题讨论】:

  • 你试过“yyyy/mm/dd”吗?
  • 尽可能长地读取日期并写出格式化列或之后应用格式?

标签: excel vba date


【解决方案1】:

尝试清除 Range("$D$1:$D$" & lastRow) 中的所有日期格式并应用 NumberFormat 方法:

csvFile.Sheets(sheetname).Range("$D$1:$D$" & lastRow).ClearFormats
csvFile.Sheets(sheetname).Range("$D$1:$D$" & lastRow).NumberFormat = "dd/mm/yyyy"

【讨论】:

    【解决方案2】:

    您需要选择单元格并使其等于“格式(单元格,数据样式)”。

    例如,Row 和 Col 是工作表中的任意位置:

    sheet.Cells(Row, Col) = Format(sheet.Cells(Row, Col), "dd/mm/yyyy")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多