因為需要進行批處理翻譯,需要對特殊樣式的專業詞匯進行替換。于是我去錄制了宏,得到如下代碼
將粗體的
替換為
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Font.Bold = True
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Mercury Accumulation"
.Replacement.Text = "Mercury Accumulation^p汞元素聚積"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
With Selection
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseStart
Else
.Collapse Direction:=wdCollapseEnd
End If
.Find.Execute Replace:=wdReplaceOne
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseEnd
Else
.Collapse Direction:=wdCollapseStart
End If
.Find.Execute
End With
Selection.Find.Execute
可問題是詞庫太大了,如果全部都寫如一個宏中,就無法執行,因為Office宏在編譯時,一個程序的代碼不得超過 6.4 萬個字符。
所以下一步是需要我把詞庫存在一個Excel表里,然后呼叫嗎?小白很迷茫
uj5u.com熱心網友回復:
把“詞庫”寫死到代碼中,肯定是非常糟糕的方案。
用資料庫或Excel表,才是明智之舉。
這樣,把“代碼”寫好后,代碼可以不動了;
而詞庫的增刪、修正,直接維護相應的資料庫或檔案就行了。
(這種“維護作業”你都可以交給別人去做)
uj5u.com熱心網友回復:
所以我應該用哪類vb命令或者演算法,可否提供個方向我自己去研究下
uj5u.com熱心網友回復:
看你的“語言描述”,感覺你是沒有一點編程基礎?
編程講的不是“命令”而是“陳述句”。
任何“功能”(或說“演算法”),都是由一系列的基本陳述句,
經合理的、正確的“邏輯組合”和流程控制,才能夠得以實作。
復雜的東西,不是一時半會就能說清楚的。
你的這個問題,我覺得關鍵點是“檔案中的詞匯提取”和識別,
如何準確的“找到”你需要的專業語匯,是個很重要的問題。
要是處理不好,出現“斷章取義”的問題,
多半會出現啼笑皆非的后果。
(想想以前的“全文翻譯”效果吧……翻譯后反而更看不懂了!)
至于如何去實作文本替換,那都是簡單的事了…………
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/11927.html
標籤:VB基礎類
下一篇:ANSYS資料結果提取
