将英国日期复制到美国格式

时间:2018-05-31 09:23:39

标签: excel vba date

我有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"

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:0)

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

例如,Row和Col为工作表中的任何位置:

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