将IF(w/ISTEXT、FIND、MID用于将日期转换为正确格式)语句转换为自定义VBA函数



我收到一位同事的工作簿,他没有使用一致的日期格式。下面的IF语句概述了我试图创建一个IF语句的想法过程,该语句可以使用MID和FIND:将字符串或数字转换为正确的日期格式

=IF(ISTEXT(F49),MID(F49, FIND("/",F49)+1, FIND("/",F49, FIND("/",F49)+1)-FIND("/",F49)-1)&"/"&LEFT(F49,FIND("/",F49,1)-1)&"/"&RIGHT(F49,2),TEXT(F49,"dd/mm/yy"))

当谈到VBA时,我有点新手,我想创建一个自定义函数,可以实现上面IF语句中概述的步骤。如有任何帮助/指导,我们将不胜感激。

谢谢你,

GG

看起来您正在将欧洲日期转换为美国当地日期。有几种方法可以做到这一点:

a) VBA函数[例如=ConvertDates(F49)]:

Function ConvertDates(ValueDate As Range)
Dim Dates() As String
Dates = Split(ValueDate.Text, "/")
ConvertDates = Dates(1) & "/" & Dates(0) & "/" & Dates(2)
End Function

b) 表单公式(简化版):

=IF(ISTEXT(F49),MID(F49,4,3)&REPLACE(F49,4,5,""),TEXT(F49,"dd/mm/yy"))

c) 在列中选择日期,然后选择:

数据>文本到列>下一个>下一步>列数据格式:DMY

我认为第三种选择可能是最快的,因为您不需要创建新的列。

最新更新