将IF(带有ISTEXT,FIND,MID以将日期转换为正确格式)语句转换为自定义VBA函数

时间:2012-03-15 11:33:03

标签: excel 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

1 个答案:

答案 0 :(得分:1)

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

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

我认为第三个选项可能最快,因为您不需要创建新列。