Следующий код используется для расчета продолжительности между двумя датами, например «13.11.2012 11:21:41 AM» и «14.11.2012 2:32:59 PM ". Функция производит правильный вывод, в данном случае: 1:03:11 (в формате dd: hh: mm, поэтому 1 день, 3 часа и 11 минут). После вычисления сценарий хранит это значение в ячейке, которая до сих пор идеальна, и именно тот формат, который я хочу. После этого другой скрипт запускает и перемещает эти ячейки в зависимости от потребностей и некоторой логики в скрипте и динамически сохраняет его в требуемой ячейке. Проблема, с которой я сталкиваюсь, заключается в том, что время добавляет значение «AM» или «PM», что неверно, поскольку это очень специфическая (и FORMATTED) DURATION, а НЕ фактическое время суток, которое Excel кажется, рассматривается как значение TIME.Формат даты и времени в excel с использованием VBScript
Вот код, используемый для измерения длительностей:
Function TimeSpan(dt1,dt2)
Dim dtTemp
objExcel1.Application.ScreenUpdating = False
If (IsDate(dt1) And IsDate(dt2)) = False Then
TimeSpan = "00:00:00"
Exit Function
End If
If dt2 < dt1 Then
dtTemp = dt2
dt2 = dt1
dt1 = dt2
End If
TimeSpan = objExcel1.Application.WorksheetFunction.Text((dt2 - dt1), "dd:hh:mm")'"dd:hh:mm:ss"
objExcel1.Application.ScreenUpdating = False
End
Это выглядит очень хорошо знакомым [post] (http://stackoverflow.com/questions/13837023/date-value-subtraction-producing-wrong-error);) ** Так просто скажите нам, что делает ваш листок над всеми. ** Поскольку у вас есть много других скриптов, запускающих и завинчивающих ваш лист. Программа должна быть совместимой и иметь правильный поток данных. Пожалуйста, поделитесь с нами тем, что вы пытаетесь сделать здесь, а не кусочками здесь и там. :) – bonCodigo
См., Когда вышеприведенная функция вычисляет продолжительность времени, они идеальны. Но когда я перемещал значения ячейки справа налево, там пустое место, это форматирование данных терялось. это проблема. –
** Если пустое место –