使用VBA导入XML

时间:2017-03-09 15:12:07

标签: excel excel-vba vba

我目前正在开发一个电子表格,用于分析从我们使用的在线T卡系统导出的数据。这将以XML格式导出所有数据。 要导入此数据,我使用宏将其全部保存到另一个工作表,并将大多数列转换为值,因为它们都存储为文本。但是我遇到的问题是将日期列中的文本转换为实际日期。我正在使用此代码转换为日期:

With ActiveSheet.UsedRange.Columns("U").Cells
.NumberFormat = "dd/mm/yyyy"
.Value = .Value
End With

虽然这适用于日期大于12的某些日期,但对于12日或更小日期的其他日期,它使用日期作为月份,反之亦然。

例如,使用以下XML条目时:

<TCard>
      <Ref>*****</Ref>
      <CUSTOMER_NAME>*****</CUSTOMER_NAME>
      <ORDER_NUMBER>*****</ORDER_NUMBER>
      <ACCOUNT_NUMBER>*****</ACCOUNT_NUMBER>
      <ITEM_NUMBER_DELIVERY_AREA>*****</ITEM_NUMBER_DELIVERY_AREA>
      <Description>PFC 230 X 90 / 5 @ 12.2</Description>
      <Colour>Stock Bar PP</Colour>
      <SlotPosition>35</SlotPosition>
      <RowTitle></RowTitle>
      <AssignedDate>20/02/2017</AssignedDate>
      <EndDate />
      <AssignedColumnTitle>Monday</AssignedColumnTitle>
      <Locked>False</Locked>
      <Order_Date>17/02/2017</Order_Date>
      <Due_Date>21/02/2017</Due_Date>
      <Weight_kg>1972</Weight_kg>
      <DrillSaw_Time>-</DrillSaw_Time>
      <Blaster_Time>-</Blaster_Time>
      <Saw_Time>-</Saw_Time>
    </TCard>

当宏运行时,它将为此条目指定日期为20/02/2017,这是正确的,但是在另一个指定日期为2017年3月8日(2017年3月8日)的情况下,宏更改此至2017年8月3日(2017年8月3日)。

不幸的是,我不认为其他建议使用修剪输入的方法可以在每月12日的日期正常工作。

宏是否有办法仅将存储为文本的日期更改为DD / MM / YYYY格式?

如果有一些明显错过的东西,请提前道歉,我只是为这个项目学习了基本的VBA nessacery

0 个答案:

没有答案