我收到一位同事发来的工作簿,该同事不使用一致的日期格式。下面的 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 函数 [例如=转换日期(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
我认为第三个选项可能是最快的,因为您不需要创建新列。
关于excel - 将 IF(使用 ISTEXT、FIND、MID 将日期转换为正确的格式)语句转换为自定义 VBA 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9718832/