Я хрущу числа с VBA в Excel, используя данные, импортированные из текстового файла. Данные временной метки представлены в форме «дд-ммм-гггг чч: мм: сс.000», а формат чисел установлен на «дд-ммм-гггг чч: мм: сс.000» для всего столбца. После импорта импортированный столбец точно соответствует текстовому файлу (например, 16-Mar-2020 16: 10: 15.175).
В рамках обработки чисел я импортировал столбец в массив вариантов с именем отметка времени:
Dim timestamp As Variant
timestamp = Range(.Cells(1, Timestamp_Column), .Cells(NumRows, Timestamp_Column))
Когда я проверяю данные с точкой останова, они форматируются как дата, но отметка времени не отображается. Он отформатирован как: # 16-Mar-20 16:10:15 # # 1006 *
Затем я вставляю его в лист назначения, который имеет тот же формат номера, что и исходные данные:
Private Function FillColumnData(theArray As Variant, transpose As Boolean, _
sheetname As String, destCol As Integer) As Variant
Dim destColRange As Range
Dim tempArray as Variant
Dim maxrow As Long
maxrow = NumRows()
' Transpose the array?
If (transpose) Then
tempArray = TransposeArray(theArray) ' Transpose the array
Else
tempArray = theArray ' The timestamp array is not transposed
End If
With Sheets(sheetname)
Set destColRange = .Columns(destCol)
Set destColRange = destColRange.resize(maxrow, 1)
destColRange.value = tempArray
End With
Полученный столбец заполнен и соответствует исходным данным столбца, за исключением того, что все значения в миллисекундах равны 0: например, original = "16-Mar-2020 16: 10: 15.175"; copy = "16-Mar-2020 16: 10: 15.000".
Есть ли что-то, что я мог бы заставить при вставке массива обратно на лист назначения?
Заранее спасибо за любую помощь!