Всем привет
Копирую содержимое таблицы в переменную, а переменную потом записываю в фаил
Но поля типа даты сохраняются в формате числа типа 43342. Но такой формат не удобен, например потом для загрузки в PQ - приходиться делать лишние обработки по конвертации числа в дату.
Подскажите пожалуйста, как заставить данную строчку записывать в переменную значение с учетом форматирование, которое выбрано в Excel? В таблице я вижу нормальную дату, а в фаил число попадает. Благодарю!
Полный макрос:
Копирую содержимое таблицы в переменную, а переменную потом записываю в фаил
Код |
---|
rowString = rowString & Chr(34) & tblArr(i, jSubA) & Chr(34) & ";" |
Подскажите пожалуйста, как заставить данную строчку записывать в переменную значение с учетом форматирование, которое выбрано в Excel? В таблице я вижу нормальную дату, а в фаил число попадает. Благодарю!
Полный макрос:
Код |
---|
Sub csvTable(lName As String, tName As String, fName As String) Dim tbl As ListObject Dim csvFilePath As String Dim fNum As Integer Dim tblArr Dim rowArr Dim csvVal Dim fsT As Object Set fsT = CreateObject("ADODB.Stream") fsT.Type = 2 'Specify stream type - we want To save text/string data. 'fsT.Charset = "utf-8" 'Specify charset For the source text data. fsT.Open 'Open the stream And write binary data To the object Set tbl = ThisWorkbook.Worksheets(lName).ListObjects(tName) csvFilePath = fName tblArr = tbl.Range.Value If tblArr(2, 1) = "" Then Debug.Print "Empty " & lName Call statUpdate(fName, "EMPTY") Exit Sub End If For i = 1 To UBound(tblArr, 1) 'rowArr = tblArr(i, 1) For jSubA = 1 To UBound(tblArr, 2) rowString = rowString & Chr(34) & tblArr(i, jSubA) & Chr(34) & ";" Next jSubA fsT.WriteText rowString & Chr(10) rowString = "" Next i fsT.SaveToFile fName, 2 Call statUpdate(fName, lName) Set tblArr = Nothing Set rowArr = Nothing Set csvVal = Nothing End Sub43342 |