Excel不会将值保留为日期,而是将其更改为数字

时间:2015-07-22 20:48:21

标签: excel vba excel-vba

此代码应该从销售模板中复制销售表,将此模板粘贴到新工作表上,检查BI列中的日期,如果有日期,则删除包含日期的行并将其移至新表。除了excel正在将列BI的格式从日期更改为一串数字之外,一切似乎都在起作用。有谁知道这是为什么?非常感谢, 利亚

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

1 个答案:

答案 0 :(得分:1)

尝试格式化具有日期的列。

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"