Правильный формат даты с помощью VBA для импорта XML
В настоящее время я работаю над электронной таблицей для анализа данных, экспортируемых из онлайн-системы t-card, которую мы используем. Это экспортирует все свои данные в формате 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 для этой записи, что верно, однако в другой, где назначенная дата – 08/03/2017 (8 марта 2017 года), макрос изменяет это на 03 / 08/2017 (3 августа 2017 года).
К сожалению, я не думаю, что другие методы, которые предполагают использование обрезанных входов, будут работать, поскольку даты в течение 12 числа каждого месяца являются правильными.
Есть ли способ для макроса изменить дату, сохраненную как текст в формате DD / MM / YYYY, только из XML?
Извиняюсь заранее, если есть что-то очевидное, что я пропал без вести, я только научился базовому VBA nessacery для этого проекта