返回列表 上一主題 發帖

[發問] 關於自動取代功能

[發問] 關於自動取代功能

各位大家好:
我有一個需求,就是開始word檔,它能自動取代某些文字
例如
H2O→自動取代成為H2O [2 為下標]

不知如何WORD打開,就自動進行取代的動作

回復 1# kuu

1.開Word,按Alt+F11
2.[檢視]>[專案總管]
3.快按二下[Project]中的[ThisDocument]
4.於[程式碼]視窗中,左側選[Document];右側選[Open]
5.稍微刪改一下 http://blog.udn.com/junk200/2878195 的程式碼
6.將內容貼於下面的中間
  1. Private Sub Document_Open()
  2. End Sub
複製代碼
7.儲存

以上供您參考
偉婕電子書,歡迎免費下載參考
http://www.twbts.com/ebook/?subject=office
http://www.twbts.com/ebook/?subject=soft
偉婕藏書庫---https://www.facebook.com/groups/669579416484096/
有一家柑仔店---https://www.facebook.com/sadodona

TOP

感謝偉婕的幫忙,化學式的自動取代是解決了
但是我的文件中除了化學式還有其他的英文字,例如
JIS K6703或是ASTM D634等不需要取代的,但是依上述公式,也被取代了
我的想法是
作一個化學文件的WORD檔,內容有H20→H2O [2 為下標]等要被取代的文字及要取代的字
在NORMAL作一VBA,讓WORD一開啟就去檢查文件中有無「化學文件的WORD」中要被取代的字

TOP

回復 3# kuu

參考 http://blog.udn.com/WayCheng/2731101 看看
範例中是用.txt,由於您有化學式,所以改成.doc試看看
偉婕電子書,歡迎免費下載參考
http://www.twbts.com/ebook/?subject=office
http://www.twbts.com/ebook/?subject=soft
偉婕藏書庫---https://www.facebook.com/groups/669579416484096/
有一家柑仔店---https://www.facebook.com/sadodona

TOP

偉婕您好:
我將該範例中的txt改為doc,但是出現錯誤訊息如下(如紅色所示)
Option Base 0
Sub Document_Open()
Dim arrStr() As String, InputStr As String
Fn = FreeFile

Open "c:\Replace.doc" For Input As #Fn '開啟Replace.doc檔
Application.ScreenUpdating = False  '畫面暫停更新
While Not EOF(Fn)
    Line Input #Fn, InputStr '從檔案讀出一列,
    If Len(InputStr) > 0 And Mid(InputStr, 1, 1) <> "'" Then '若第一個字元是'就跳此列
        arrStr = Split(InputStr, ",") '把讀入的文字列依逗號分成二個字串,置於 arrStr陣列內
        Call ReplaceText(arrStr(0), arrStr(1)) '
    End If
Wend
Application.ScreenUpdating = True '畫面恢復更新
Close #Fn

End Sub

Function ReplaceText(Src As String, Rpl As String) '這個函式會在整個檔案裡搜尋Src字串,將它取代為Rlp字串


Selection.HomeKey Unit:=wdStory, Extend:=wdMove
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = Src
    .Replacement.Text = Rpl
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchByte = True
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .Execute Replace:=wdReplaceAll '全部取代
End With

End Function

不知應該要怎麼改,才能正確顯示,感謝您的幫忙。

TOP

執行到紅色,會顯示錯誤訊息「執行階段錯誤'9', 陣列索引超出範圍」

TOP

回復 6# kuu

該字串可能不包含逗點
學海無涯_不恥下問

TOP

Hsieh您好:
主要原本是開啟txt檔,我將它改為doc檔
此部份以txt文件,開啟是正常的,但是改為doc才會出現問題
我剛也試過將逗號拿掉,也是出現另一個問題

TOP

字串的部分可能不包含逗點

TOP

請問
1. 如果是群組起來的文字方塊該如何撰寫
2. 如果開啟核對的檔案有日文...等需要使用 unicode 時,該如何使用?

TOP

        靜思自在 : 【是否發揮了良能?】人間壽命因為短暫,才更顯得珍貴。難得來一趟人間,應問是否為人間發揮了自己的良能,而不要一味求長壽。
返回列表 上一主題