【求助】在word怎樣轉日期的格式?



贊助商連結


Superken
2005-03-04, 01:09 AM
請問在word怎樣將漢字日期轉成阿拉伯數字?
如:一九九四年七月一對夫婦
變:1994年7月一對夫婦

贊助商連結


Lucky Purple
2005-03-04, 09:48 PM
用「搜尋」及「取代」的功能!

Superken
2005-03-05, 01:32 AM
搜尋是可以,但一想到取代就頭大了

leonchou
2005-03-05, 03:11 AM
如果不是少數幾個日期,
從○~九分別取代為0~9要操作十次,
而且還可能取代到別的東西 (例如"一對夫婦"的一)。
試用以下的巨集,應可以省不少力氣:

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

Superken
2005-03-05, 12:13 PM
謝謝大大的幫助!
不能說獲益良多呢,因為不太明白 :|||: :jump:

leonchou
2005-03-05, 04:03 PM
萬用字元(wildcard)的應用...
雖然Word搜尋功能支援wildcard,但取代功能
無法滿足本主題的需求,於是巨集就派上用場了。
以日期的特性來決定wildcard代碼怎麼寫:
<font size=2>[一二][九○][七八九○][一二三四五六七八九○]年*[一二三四五六七八九十]月</font>
如果你不熟萬用字元,可先把每個 [ ] 看作一個字,
[ ] 裡面每個字符合文章內的就算成立。
這個代碼可以搜尋到 1970~2099 所有年月的內容,若不足還可調整。
巨集跑 Do... Loop 迴圈,逐一搜尋符合上述wildcard條件的內容,
如果找到:
選取範圍(selection)會選取找到的內容(該年月反白),
程式會透過Format函數將它取代為阿拉伯數字的日期格式,
然後改變選取區(Collapse)到該年月之後,準備下一次搜尋。
如果找不到:
選取範圍不會改變,也就是無任何區域反白 (Selection.Type = wdSelectionIP),
此時跳出迴圈 (Exit Do) 並結束程式。

Superken
2005-03-08, 12:24 PM
這次真的是獲益良多了,
但還有一個問題,如果只有年份沒有月份要怎樣修改呢?
Format函數是否不支持只有年份的格式。

leonchou
2005-03-08, 11:01 PM
Format函數是否不支持只有年份的格式。
Format 識認中文日期的特性很方便,但它確實不支持只有年份的格式。
不過你還是可以用一點小技巧 --
Format("二○○五年" & "1月", "yyyy年")
--> 2005年

.........
x = "[一二][九○][七八九○][一二三四五六七八九○]年"
Do
Selection.Find.Execute x, MatchWildcards:=True
If Selection.Type = wdSelectionIP Then Exit Do
Selection.Text = Format(Selection.Text & "1月", "yyyy年")
.........既然它至少要年月才能轉,就補月給它吧。

Superken
2005-03-09, 02:02 PM
:king: 謝謝!

littlestar
2005-03-09, 04:35 PM
萬用字元(wildcard)的應用...
雖然Word搜尋功能支援wildcard,但取代功能
無法滿足本主題的需求,於是巨集就派上用場了。
以日期的特性來決定wildcard代碼怎麼寫:
<font size=2>[一二][九○][七八九○][一二三四五六七八九○]年*[一二三四五六七八九十]月</font>
如果你不熟萬用字元,可先把每個 [ ] 看作一個字,
[ ] 裡面每個字符合文章內的就算成立。
這個代碼可以搜尋到 1970~2099 所有年月的內容,若不足還可調整。
巨集跑 Do... Loop 迴圈,逐一搜尋符合上述wildcard條件的內容,
如果找到:
選取範圍(selection)會選取找到的內容(該年月反白),
程式會透過Format函數將它取代為阿拉伯數字的日期格式,
然後改變選取區(Collapse)到該年月之後,準備下一次搜尋。
如果找不到:
選取範圍不會改變,也就是無任何區域反白 (Selection.Type = wdSelectionIP),
此時跳出迴圈 (Exit Do) 並結束程式。


真是太讚了 :jump2: