Получение ошибки несоответствия типов в функции замены в vba

Мой код VBA должен заменить текущее время и дату в формате 4_17_2014 8_09_00 PM

Но я получаю ошибку несоответствия типов при запуске ниже кода VBA

Function Current_Date_Time_Stamp()

Dim CurrTime As Date

CurrTime = Now
MsgBox Now
CurrTime = Replace(CurrTime, "-", "_")
MsgBox CurrTime
CurrTime = Replace(CurrTime, ":", "_")
Current_Date_Time_Stamp = CurrTime

End Function

Кто-нибудь может мне помочь, почему я получаю ошибку

1 ответ

Решение

Как отметил @Tim Williams в комментариях, Replace работает только со строковыми переменными, но CurrTime является датой (на самом деле переменные даты не хранят формат даты, а только саму дату. Формат отображения даты зависит от региональных настроек и числового формата вашей ячейки).

Однако вы можете использовать функцию с одной строкой кода следующим образом:

Function Current_Date_Time_Stamp()
    Current_Date_Time_Stamp = Format(Now, "mm_dd_yyyy h_mm_ss AM/PM;@")
End Function
Другие вопросы по тегам