Получение ошибки несоответствия типов в функции замены в 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