导出为XML时,日期的Excel格式无效

导出为XML时,日期的Excel格式无效,excel,excel-formula,excel-2010,export-to-xml,Excel,Excel Formula,Excel 2010,Export To Xml,我创建了一个包含映射文件的Excel。我想做的是让用户在这里输入数据,然后按ctrl+E。我创建了一个宏,它会将其导出为XML。问题是:当导出第1行时,它将其日期和时间格式保留为XML示例:在XML中,时间将显示为2013年1月12日。但在该行下输入的任何内容都不会以我想要的格式显示。相反,它将显示为日期为1345464 这件事一直很烦人,因为我不知道如何格式化整个Excel文档/列,以便它将日期和时间显示为文本,而不是奇怪的数字 有人请帮帮我。在VBA中,使用格式功能 日期=格式日期,年月日

我创建了一个包含映射文件的Excel。我想做的是让用户在这里输入数据,然后按ctrl+E。我创建了一个宏,它会将其导出为XML。问题是:当导出第1行时,它将其日期和时间格式保留为XML示例:在XML中,时间将显示为2013年1月12日。但在该行下输入的任何内容都不会以我想要的格式显示。相反,它将显示为日期为1345464

这件事一直很烦人,因为我不知道如何格式化整个Excel文档/列,以便它将日期和时间显示为文本,而不是奇怪的数字

有人请帮帮我。

在VBA中,使用格式功能

日期=格式日期,年月日

然后更改存储单元的格式:

Cellsrow,col.NumberFormat=@

用VBA中的行和列替换单元格坐标,使用Format函数

日期=格式日期,年月日

然后更改存储单元的格式:

Cellsrow,col.NumberFormat=@


用单元格的坐标替换行和列

哇,我觉得自己很蠢!这比我想象的要容易:

步骤1:将开始日期中的日期拖到要填充数据的行中。对Enddate列执行相同的操作

第二步:注意下面的一个小方形框,它在第一步之后出现。展开方形框

第3步:选择显示“仅填充格式”的选项


恭喜你!现在尝试输入/粘贴日期。它应该保持左文本格式

哇,我觉得自己很蠢!这比我想象的要容易:

步骤1:将开始日期中的日期拖到要填充数据的行中。对Enddate列执行相同的操作

第二步:注意下面的一个小方形框,它在第一步之后出现。展开方形框

第3步:选择显示“仅填充格式”的选项


恭喜你!现在尝试输入/粘贴日期。它应该保持左文本格式

我不是专家,但我花了很多时间试图弄明白这一点,最终这段代码为我工作了

Dim eCell as Range

 For Each eCell In Range("O20:P20")
        If Len(eCell.Value) > 0 Then
          eCell.NumberFormat = "@"
          eCell.Value = CDate(eCell.Value)

        End If
    Next

CDate函数将序列日期转换回正常日期

我不是专家,但我花了很多时间试图弄清楚这一点,最终这段代码为我工作

Dim eCell as Range

 For Each eCell In Range("O20:P20")
        If Len(eCell.Value) > 0 Then
          eCell.NumberFormat = "@"
          eCell.Value = CDate(eCell.Value)

        End If
    Next

CDate函数将序列日期转换回正常日期

为什么两行数据之间的日期单元格对齐方式不同?是否应用了不同的格式?为什么两行数据之间的日期单元格对齐方式不同?你们有不同的格式吗?但这仍然会输出为五位数,对吗?我希望我的日期导出为文本。我可以使用另一列并执行如下操作:=TEXTP2,MM/DD/YYYY。但是我会导出一个额外的列。我不熟悉VBA,但有没有一种方法可以通过VBA实现这一点,这样用户就不必做任何额外的工作?谢谢。但这仍然会输出为五位数,对吗?我希望我的日期导出为文本。我可以使用另一列并执行如下操作:=TEXTP2,MM/DD/YYYY。但是我会导出一个额外的列。我不熟悉VBA,但有没有一种方法可以通过VBA实现这一点,这样用户就不必做任何额外的工作?谢谢