![]() |
【求助】在word怎樣轉日期的格式? 請問在word怎樣將漢字日期轉成阿拉伯數字? 如:一九九四年七月一對夫婦 變:1994年7月一對夫婦 |
用「搜尋」及「取代」的功能! |
搜尋是可以,但一想到取代就頭大了 |
如果不是少數幾個日期, 從○~九分別取代為0~9要操作十次, 而且還可能取代到別的東西 (例如"一對夫婦"的一)。 試用以下的巨集,應可以省不少力氣:[code] Sub test() Selection.HomeKey Unit:=wdStory x = "[一二][九○][七八九○][一二三四五六七八九○]年*[一二三四五六七八九十]月" Do Selection.Find.Execute x, MatchWildcards:=True If Selection.Type = wdSelectionIP Then Exit Do Selection.Text = Format(Selection.Text, "yyyy年m月") Selection.Collapse Direction:=wdCollapseEnd Loop End Sub[/code] |
謝謝大大的幫助! 不能說獲益良多呢,因為不太明白 :|||: :jump: |
萬用字元(wildcard)的應用... 雖然Word搜尋功能支援wildcard,但取代功能 無法滿足本主題的需求,於是巨集就派上用場了。 以日期的特性來決定wildcard代碼怎麼寫: [COLOR=Navy]<font size=2>[一二][九○][七八九○][一二三四五六七八九○]年*[一二三四五六七八九十]月</font>[/COLOR] 如果你不熟萬用字元,可先把每個 [ ] 看作一個字, [ ] 裡面每個字符合文章內的就算成立。 這個代碼可以搜尋到 1970~2099 所有年月的內容,若不足還可調整。 巨集跑 Do... Loop 迴圈,逐一搜尋符合上述wildcard條件的內容, [COLOR=DarkRed]如果找到:[/COLOR] 選取範圍(selection)會選取找到的內容(該年月反白), 程式會透過Format函數將它取代為阿拉伯數字的日期格式, 然後改變選取區(Collapse)到該年月之後,準備下一次搜尋。 [COLOR=DarkRed]如果找不到:[/COLOR] 選取範圍不會改變,也就是無任何區域反白 (Selection.Type = wdSelectionIP), 此時跳出迴圈 (Exit Do) 並結束程式。 |
這次真的是獲益良多了, 但還有一個問題,如果只有年份沒有月份要怎樣修改呢? Format函數是否不支持只有年份的格式。 |
[quote]Format函數是否不支持只有年份的格式。[/quote] Format 識認中文日期的特性很方便,但它確實不支持只有年份的格式。 不過你還是可以用一點小技巧 -- Format("二○○五年" & "1月", "yyyy年") --> 2005年[code] ......... x = "[一二][九○][七八九○][一二三四五六七八九○]年" Do Selection.Find.Execute x, MatchWildcards:=True If Selection.Type = wdSelectionIP Then Exit Do Selection.Text = Format(Selection.Text & "1月", "yyyy年") .........[/code]既然它至少要年月才能轉,就補月給它吧。 |
:king: [SIZE=5]謝謝[/SIZE]! |
[QUOTE=leonchou]萬用字元(wildcard)的應用... 雖然Word搜尋功能支援wildcard,但取代功能 無法滿足本主題的需求,於是巨集就派上用場了。 以日期的特性來決定wildcard代碼怎麼寫: [COLOR=Navy]<font size=2>[一二][九○][七八九○][一二三四五六七八九○]年*[一二三四五六七八九十]月</font>[/COLOR] 如果你不熟萬用字元,可先把每個 [ ] 看作一個字, [ ] 裡面每個字符合文章內的就算成立。 這個代碼可以搜尋到 1970~2099 所有年月的內容,若不足還可調整。 巨集跑 Do... Loop 迴圈,逐一搜尋符合上述wildcard條件的內容, [COLOR=DarkRed]如果找到:[/COLOR] 選取範圍(selection)會選取找到的內容(該年月反白), 程式會透過Format函數將它取代為阿拉伯數字的日期格式, 然後改變選取區(Collapse)到該年月之後,準備下一次搜尋。 [COLOR=DarkRed]如果找不到:[/COLOR] 選取範圍不會改變,也就是無任何區域反白 (Selection.Type = wdSelectionIP), 此時跳出迴圈 (Exit Do) 並結束程式。[/QUOTE] 真是太讚了 :jump2: |
| 所有時間均為 +8。現在的時間是 01:05 AM。 |
| XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。