Cells(i,Lcol-4)
или эквивалент Cells(i,Lcol-4).Value
возвращает значение типа Дата, тогда как даты, указанные в вашей рабочей таблице, на самом деле являются серийными номерами, отформатированными как даты.
В результате VLookup не сможетвернуть матч.И, поскольку вы уточнили свою ссылку с помощью Application, вместо WorksheetFunction, она возвращает неразрывную ошибку.
Однако, поскольку ошибка, возвращаемая VLookup, сравнивается со значением в Cells(i,Lcol-4)
, вывозникнет ошибка разрыва типа.
Итак, сначала я бы посоветовал вам преобразовать значение поиска в тип данных Long ...
Application.Vlookup(CLng(Cells(i,Lcol-4).Value), . . .
Затем, как уже было предложеноChronocidal, присвойте возвращаемое значение Variant, чтобы вы могли использовать IsError для проверки на наличие ошибки ...
Dim matchVal As Variant
matchVal = Application.VLookup(CLng(Cells(i, Lcol - 4).Value), Workbooks("V_TAUX.xlsx").Sheets(1).Range("A2:A232"), 1, False)
If Not IsError(matchVal) Then
'etc
'
'
End If
Хотя, поскольку вы просто проверяете совпадение, вы можете использовать Application.Matchвместо ...
Dim matchVal As Variant
matchVal = Application.Match(CLng(Cells(i, Lcol - 4).Value), Workbooks("V_TAUX.xlsx").Sheets(1).Range("A2:A232"), 0)
If Not IsError(matchVal) Then
'etc
'
'
End If