【问题标题】:Date changed to number format when sheet imported. Excel VBA导入工作表时日期更改为数字格式。 Excel VBA
【发布时间】:2014-10-07 07:31:26
【问题描述】:

有人知道如何解决这个问题吗?在导入数据之前,打开的时候日期好像没问题,格式是这样的:

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

非常感谢任何帮助!

【问题讨论】:

  • 什么叫“shet”?我想如果您在副本末尾使用.clearformats,那么您最终会丢失格式(日期一般)

标签: vba date excel format


【解决方案1】:

ClearFormats 正在这样做。 放开那句话。

【讨论】:

  • 如果您想再次设置日期列的格式,请使用 Gareth 的答案。
【解决方案2】:

显示的数字代表一个日期值。要将其转换为日期格式,请选择要转换为日期的列并使用 NumberFormat 属性,如下所示:

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

【讨论】:

  • 日期和时间有什么格式吗?例如。 2014 年 10 月 3 日 20:32
  • 是的,例如,您可以使用"dd/mm/yyyy hh:mm"
猜你喜欢
  • 2017-10-01
  • 2018-03-21
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多