Excel不保留值作为date,但将其更改为数字

此代码应该从销售模板复制销售表,将此模板粘贴到新表上,检查BI列的date,如果有date,则删除包含date的行并将其移动到新表。 一切似乎工作,除了Excel正在改变从一个date列数据的格式化为一串数字。 有人知道这是为什么吗? 非常感谢,伊莱亚斯

Sheets("Sales").Select Sheets("Salestemplate").visible = True Sheets.Add After:=ActiveSheet ActiveSheet.Select ActiveSheet.Name = "Last Month's Sales" Sheets("Salestemplate").Select Cells.Select Range("AI1").Activate Selection.Copy Sheets("Last Month's Sales").Select Range("A1").Select ActiveSheet.Paste Sheets("Sales").Select Range("BI8").ClearContents Columns("BI:BI").Select Application.CutCopyMode = False Columns("BI:BI").Select Selection.SpecialCells(xlCellTypeConstants).EntireRow.Select Selection.Copy Sheets("Last Month's Sales").Select Range("A9").PasteSpecial Paste:=xlPasteValues Sheets("Sales").Select Columns("BI:BI").Select Selection.SpecialCells(xlCellTypeConstants).EntireRow.Delete Range("B8").Value = DTA 

尝试格式化有date的列。

 Sheets("Sales").Range("A:A").NumberFormat = "yyyy-mm-dd" Sheets("Sales").Range("E:E").NumberFormat = "yyyy-mm-dd" 

如果你有一个标题行,你不想格式化,你可以在你的范围内定义开始和结束行

 Dim lRow as Long lRow = ws.UsedRange.Rows.count Sheets("Sales").Range("A2:A" & lRow).NumberFormat = "yyyy-mm-dd" Sheets("Sales").Range("E2:E" & lRow).NumberFormat = "yyyy-mm-dd"