Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2017, 19:39   #1
Евгений Таб
Форумчанин
 
Аватар для Евгений Таб
 
Регистрация: 09.08.2013
Сообщений: 202
По умолчанию ИЗ xlsm в xml : формат даты

Добрый день ув. программисты,

Пож-ста помогите разобраться с наcтройкой вывода даты в xml файл. Этот макрос преобразует определенную область в xml-структуру.
По умолчанию (возможно из-за региональных настроек машины), в xml дата прилетает в формате 17/6/2015 а нужно чтобы было 2015-6-17.

Код использую такой, подскажите куда нужно прописать формат :

Код HTML:
Option Explicit


Sub Convert_Excel_Data_to_XML()
    
    Dim doc As MSXML2.DOMDocument
    Dim rng As Range, rngRow As Range
    Dim root As MSXML2.IXMLDOMNode
    Dim child As MSXML2.IXMLDOMElement
    Dim xmlDecl As MSXML2.IXMLDOMProcessingInstruction
    Dim sXmlFilePath As String
    
    'Create new XML doc
    Set doc = New MSXML2.DOMDocument
    
    'Root for creation
    sXmlFilePath = ThisWorkbook.Path & "\Output.xml"
    
    'XML declaration
    Set xmlDecl = doc.createProcessingInstruction("xml", "version='1.0' encoding='windows-1251'")
    doc.appendChild xmlDecl
    
    'Add root
    Set root = doc.createElement("Order")
    doc.appendChild root
    
    'Add element
    Set rng = Range("Ëèñò1!A2:J10")
    For Each rngRow In rng.Rows
        Set child = doc.createElement("Invoice")
        child.setAttribute "DocNo", rngRow.Cells(1)
        child.setAttribute "Date", rngRow.Cells(2) ' < вот тут дата
        child.setAttribute "PointId", rngRow.Cells(3)
        child.setAttribute "WBID", rngRow.Cells(4)
        child.setAttribute "SupplyDate", rngRow.Cells(5)  ' < вот тут дата
        child.setAttribute "PalletQnt", rngRow.Cells(6)
        child.setAttribute "PackQnt", rngRow.Cells(7)
        child.setAttribute "Weight", rngRow.Cells(8)
        child.setAttribute "Sum", rngRow.Cells(9)
        child.setAttribute "Comment", rngRow.Cells(10)
        root.appendChild child
      
    Next
    
    'Prepared and creation
    doc.Save sXmlFilePath
    
    MsgBox "XML ôàéë ñîõðàí¸í â '" & sXmlFilePath & "'"
    
End Sub
Cпасибо!

Последний раз редактировалось Евгений Таб; 28.04.2017 в 20:53.
Евгений Таб вне форума Ответить с цитированием
Старый 28.04.2017, 21:10   #2
Евгений Таб
Форумчанин
 
Аватар для Евгений Таб
 
Регистрация: 09.08.2013
Сообщений: 202
По умолчанию

Код:
child.setAttribute "Date", Format(rngRow.Cells(2), "yyyy-d-m")
Решено
Евгений Таб вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формат даты Polina_ Помощь студентам 1 20.12.2012 17:42
Формат даты. vlkr Microsoft Office Access 1 04.08.2012 23:43
Формат Даты katerinkaj Microsoft Office Excel 83 29.08.2011 14:05
Формат даты SergiOD Общие вопросы Delphi 5 09.03.2011 02:11
Формат даты Green_C@t Общие вопросы Delphi 3 22.09.2009 10:05