Board logo

標題: [發問] 關於自動取代功能 [打印本頁]

作者: kuu    時間: 2014-1-8 22:49     標題: 關於自動取代功能

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

不知如何讓WORD打開,就自動進行取代的動作
作者: 偉婕    時間: 2014-1-9 23:49

回復 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.儲存

以上供您參考
作者: kuu    時間: 2014-1-14 08:30

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

回復 3# kuu

參考 http://blog.udn.com/WayCheng/2731101 看看
範例中是用.txt,由於您有化學式,所以改成.doc試看看
作者: kuu    時間: 2014-1-15 20:33

偉婕您好:
我將該範例中的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

不知應該要怎麼改,才能正確顯示,感謝您的幫忙。
作者: kuu    時間: 2014-1-15 20:49

執行到紅色,會顯示錯誤訊息「執行階段錯誤'9', 陣列索引超出範圍」
作者: Hsieh    時間: 2014-1-15 22:12

回復 6# kuu

該字串可能不包含逗點
作者: kuu    時間: 2014-1-16 13:00

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

字串的部分可能不包含逗點
作者: sty    時間: 2015-4-29 15:55

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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)