在工作上可能會遇上的問題,在此紀錄與分享一下。 問題:Excel中輸入日期,有些人輸入108/7/8、108.3.5等等格式要怎麼統一成 1080506這樣的 格式呢? 步驟一:先以內建函數轉換(取代)日期 要認識的基本函數 IF、Mid、Left、Right、Substitute 進行取代 IF( MID(RIGHT(A1,2),1,1)="/" , IF(RIGHT(LEFT(A1,6),1)="/" ,SUBSTITUTE(SUBSTITUTE(A1,"/","0",2),"/","0",1),SUBSTITUTE(SUBSTITUTE(A1,"/","0",2),"/","",1)),IF( RIGHT(LEFT(A1,6),1)="/" , SUBSTITUTE(SUBSTITUTE(A1,"/","",2),"/","0",1) ,SUBSTITUTE(SUBSTITUTE(A1,"/","",2),"/","",1))) 第一個IF是用來判斷"日"的格式,舉例來說108/5/6,Right(A1,2)會取出"/6",再用Mid設定取第1個字"/",108/5/16,Right(A1,2)會取出"16",再用Mid設定取第1個字"1", 這也代表如果是1-9日可以讓她進行補0的動作。 第二個IF是用來判斷"月"的格式,與上面用取法類似。 步驟二:建立自訂函數 改為VBA格式,建立一個自己設定的函數SubstituteDate() Function SubstituteSlash(A1) If InStr(A1, "/") > 0 Then ...