Abaixo está o código revisado.
A mudança mais significativa é a seguinte:
c.Value = .Date(.Left(c.Value, 4), (.Mid(c.Value, 5, 2)), 1)
Para isso:
c.Value = DateSerial(Left(c.Value, 4), (Mid(c.Value, 5, 2)), 1)
Observe que usei a função DateSerial
para criar a data e removi os pontos ao chamar DateSerial
, Left
e Mid
, pois são funções, não propriedades.
Aqui está a função completa:
Sub TestFind()
With Worksheets("Sheet1").Range("a1:a500")
Set c = .Find("201* - (*** 201*)", LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do While Not c Is Nothing
c.Value = DateSerial(Left(c.Value, 4), (Mid(c.Value, 5, 2)), 1)
Set c = .FindNext(c)
If Not c Is Nothing Then
If c.Address = firstAddress Then Exit Do
End If
Loop
End If
End With
End Sub