返回列表 上一主題 發帖

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

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

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

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

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

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

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

TOP

        靜思自在 : 我們要做好社會的環保,也要做好內心的環保。
返回列表 上一主題