2014-10-07 108 views
0

任何人都知道如何解决这个问题?导入数据之前,日期显示打开时要罚款,这是格式:导入工作表时,日期更改为数字格式。 Excel VBA

Release Date Created 
24/04/2014  10/03/2014 20:32 

但导入到我的工作簿中的新表后,将日期更改为如下所示的数字5位。

Release Date Created 
41753   41708.85556 

我该如何解决导入到工作表时遇到的问题?以下是我将代码片导入到项目中的代码。

Sub ImptSht() 
    Dim altwb As Workbook 
    Dim FilePathalt As String 
    Dim activeWB As Workbook 

    Set activeWB = Application.ActiveWorkbook 

    FilePathalt = "C:\DataSheet\workbook.xls" 

    Application.ScreenUpdating = False 
    Application.DisplayAlerts = False 

    Set altwb = Application.Workbooks.Open(FilePathalt, Local:=True) 

    altwb.Worksheets(1).Copy After:=activeWB.Sheets(activeWB.Sheets.Count) 
    altwb.Close False 

    activeWB.Sheets("shet").Cells.AutoFilter 
    activeWB.Sheets("shet").Cells.ClearFormats 

    Application.ScreenUpdating = True 
    Application.DisplayAlerts = True 

End Sub 

任何帮助,非常感谢!

+0

什么是名为“shet”的工作表?我猜如果你在副本的末尾使用'.clearformats',那么你最终会失去格式化(日期将变为一般) – 2014-10-08 03:46:19

回答

1

显示的数字代表日期值。要转换成日期格式这一点,选择你想转换成一个日期和使用NumberFormat属性,像这样的列:

'Change the column letter to the applicable one 
Columns("A:A").NumberFormat = "m/d/yyyy" 
+0

是否有任何格式的日期和时间?例如。 10/03/2014 20:32 – 2014-10-07 07:50:08

+0

是的,你可以使用'“dd/mm/yyyy hh:mm”'例如。 – Gareth 2014-10-07 07:54:26

2

ClearFormats正在这样做。 松散的声明。

+0

如果您想要再次设置日期列的格式,请使用Gareth的答案。 – Barry 2014-10-07 07:44:17