同事出的考題,Word畫的座位表想轉成Excel,其中用到1-1,2-2格式的標示,直接複製貼上Excel,1-1、2-2會被解讀成1月1日、2月2日…
爬文找到一些Excel端解法,多要靠資料匯入克服,但座位表格子呈不規則分佈(你知道的,關主管的籠子Partition會比關部屬的大一些,大型猛獸還會有獨立獸籠高階主管還會有獨立辦公室… XD),加上想保留原有底色格線,轉格式再匯入的做法不太可行。
我想到的解法是將1-1置換成[1-1],標示效果不變而可避開Excel日期轉換。原以為要寫VBA,沒想到Word內建的萬用字元取代功能就可以搞定!
如以上展示,利用萬用字元表示法尋找"(?)-(?)"置換成"[\1-\2]",即可將"1-1"置換成"[1-1]","1-2"取代成"[1-2]"。再進一步研究,我發現Office的萬用字元可不只*, ?這麼簡單,還支援[A-Z]、[0-9]{1,3}等表示法,也有群組概念,已具備基本Regular Expression比對及取代功能,說自己只是「萬用字元」實在太謙虛 XD,但想想Word/Excel冒出「正則表示式」應該會讓很多祕書美眉皺眉頭,還是「萬用字元」吧!
摘錄Office萬用字元支援符號備查:(參考來源)
尋找 | 類型 | 範例 |
任何單一字元 | ? | s?t 會找到 sat 和 set。 |
任何字元字串 | * | s*d 會找到 sad 和 started。 |
文字的開頭 | < | <(inter) 會找到 interesting 和 intercept,但不會找出 splintered。 |
文字的結尾 | > | (in)> 會找到 in 和 within,但不會找出 interesting。 |
其中一個指定字元 | [ ] | w[io]n 會找到 win 和 won。 |
此範圍內的任何單一字元 | [-] | [r-t]ight 會找到 right 和 sight。 範圍必須依遞增順序排列。 |
角括弧內範圍之字元外的任何單一字元 | [!x-z] | t[!a-m]ck 會找到 tock 和 tuck,但不會找出 tack 或 tick。 |
前一個字元或運算式正好 n 個出現處 | {n} | fe{2}d 會找到 feed,但不會找出 fed。 |
前一個字元或運算式至少 n 個出現處 | {n,} | fe{1,}d 會找到 fed 和 feed。 |
前一個字元或運算式 n 到 m 個出現處 | {n,m} | 10{1,3} 會找到 10、100 和 1000。 |
前一個字元或運算式一或多個出現處 | @ | lo@t 會找到 lot 和 loot。 |
又到呼口號時間:Office好威啊!