Erro de função à direita do Excel VBA

0

Estou tentando atualizar automaticamente o período na parte superior do meu relatório no Excel com base no intervalo de datas dos dados obtidos por download de um banco de dados de texto. Na macro listada abaixo, recebo um erro em tempo de execução '13': Incompatibilidade de tipo em PEndDt = Right(PaidDateRange, 8) .

Acho que a variável Date, PEndDt, não gosta de obter uma String. Mas eu tenho atribuído strings para variáveis de data em outras macros! Eu não sei agora como consertar isso. Ajuda por favor.

Sub test()

Dim PEndDt As Date
Dim PaidDateRange As String

PaidDateRange = "PAID DATE  1/01/13 -  9/31/13"
PEndDt = Right(PaidDateRange, 8)
Range("A1") = "Report thru " & Format(PEndDt, "Long Date")

End Sub
    
por irockyoursocks 17.10.2013 / 20:47

2 respostas

2

O problema está na string.

31/9/13 não é uma data válida.

31/9/2013 também não é uma data válida.

    
por 17.10.2013 / 21:00
1

Você terá que analisar a string em formato mês, dia e ano

Dim itemDate as String
itemDate = Right(PaidDateRange, 8)

PEndDt = DateSerial(Right(itemDate, 2), Left(itemDate, 2), Mid(itemDate, 4, 2))

Se você acabou de colocá-lo em uma string por que converter em data?

Range("A1") = "Report thru " & Right(PaidDateRange, 8)
    
por 17.10.2013 / 20:51