Ниже приводится значение Sub для подсчета лет между двумя датами. В ячейке не отображается значение (i, 3), и когда я обновляюсь до MsgBox, отображается значение времени. Заранее спасибо за помощь.Какова моя ошибка в датированном макросе? Возвращаемое значение находится в формате времени.
Sub EE_DatedIF()
Dim wb1 As Workbook
Dim i As Long
Dim LastRow1 As Long
Dim yrDiff As Long
Dim d1 As Date
Dim d2 As Date
Set wb1 = Workbooks("macro all client v.01.xlsm")
LastRow1 = wb1.Sheets("Carrier").range("E:E").Find("", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For i = 10 To LastRow1
d1 = wb1.Sheets("Settings").Cells(i, 1)
d2 = wb1.Sheets("Carrier").Cells(i, 24)
yrDiff = DateDiff("yy", d1, d2)
wb1.Sheets("Settings").Cells(i, 3) = yrDiff
Next i
End Sub
Вы получаете правильный результат с помощью 'yrDiff = DateDiff (" yyyy ", d1, d2)'? Вы работаете под заголовком 'On Error Resume Next'? 'yrDiff' является длинным и может воспроизводить только время. – Jeeped