Ошибка правой функции Excel VBA

Я пытаюсь автоматически обновить диапазон дат в верхней части моего отчета в Excel на основе диапазона дат из данных, которые я загружаю из текстовой базы данных. В приведенном ниже макросе я получаю ошибку времени выполнения "13": несоответствие типа на PEndDt = Right(PaidDateRange, 8).

Я думаю, что переменная Date, PEndDt, не любит получать строку. Но я назначил строки переменным даты в других макросах! Я не знаю, как это исправить. Помогите пожалуйста.

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
2
задан Hennes
06.04.2023 1:04 Количество просмотров материала 2475
Распечатать страницу

2 ответа

проблема в строке.

9/31/13 не является допустимой датой.

9/31/2013 также не является допустимой датой.

2
отвечен Gary's Student 2023-04-07 08:52

вам придется разобрать строку в формате месяц,день, год

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

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

Если вы просто положить его обратно в строку, почему преобразовать в дату?

Range("A1") = "Report thru " & Right(PaidDateRange, 8)
1
отвечен Portland Runner 2023-04-07 11:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх