НЕПРАВИЛЬНАЯ ТИПА EXCEL VBA (13) - PullRequest
0 голосов
/ 16 октября 2018

Excelfile Здравствуйте. У меня есть файлы Excel с метками времени в строке, как показано на рисунке. Я хочу рассчитать разницу и ввести значение в новый столбец.Я попробовал следующий код, но он показывает ошибку несоответствия типов, и я не знаю почему.Я знаю, это легко, но я новичок в VBA, поэтому, пожалуйста, помогите мне.

\\Sub macro1() 
  Dim i As Integer
  Dim j As Integer
  Dim k As Integer
  i = 1
  j = 2
  k = 2
  Do While Cells(i, 1).Value <> ""
  Cells(k, 2).Value = Cells(j, 1).Value - Cells(i, 1).Value
  i = i + 1
  j = i + 1
  k = i
  Loop
  End Sub

1 Ответ

0 голосов
/ 16 октября 2018

Ваш формат (2.10.2017 08:08:30) необходимо изменить, прежде чем использовать CDate для преобразования значения ячейки в дату, затем используйте функцию VBA DateDiff.Увидеть ниже.Поместите = timeDiff (A2, A1) в B2, затем скопируйте в B3 и вниз.Ниже приведен код VBA.

Public Function transformCellStrInDate(ByVal rng As Range) As Date
Dim splitArr As Variant, dateArr As Variant, dateStr As String

splitArr = Split(Trim(rng.Value))
dateArr = Split(splitArr(0), ".")
dateStr = dateArr(0) & "/" & dateArr(1) & "/" & dateArr(2) & " " & splitArr(1)
transformCellStrInDate = CDate(dateStr)
Erase dateArr: Erase splitArr

End Function

Public Function timeDiff(ByVal rngY As Range, ByVal rngX As Range) As Long

timeDiff = DateDiff("n", transformCellStrInDate(rngX), transformCellStrInDate(rngY)) / 60 ' in Hours

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...