2014-10-17 58 views
0

我用Word打開打印(特殊)HTML文檔,並希望寫一個腳本來解決一個小問題:Word-Scripting:用細小空格替換不間斷的空格?

在HTML文件中我有號碼,如'15釐米「寫成'15 釐米」,所以在數字'15'和單位'cm'之間不會有換行符。

我的問題是:間距太寬,特別是當單詞擴大空間以適合句子的邊距。

所以我想用一些VBA腳本代替這些 。我想我需要枚舉段落,但我不知道如何替換那裏的文本。這是我到目前爲止所提出的,但我不知道如何在Word中編寫html nbsp,以及如何使用薄空間,也許有人可以幫助我呢?

Sub MakeThinSpaces() 
Dim para As Paragraph 
For Each para In ActiveDocument.Paragraphs 
    replace the   with some   here? 
Next 
End Sub 
+0

薄空間被定義一個易碎的空間,所以你實際上可能使事情變得更糟。 – 2014-10-17 18:58:32

回答

1

薄空格是Unicode 8201.(一個狹窄的不間斷空間將是8239)。 它應該使用選擇對象使用此代碼。
^s是一個受保護的空間通配符,你也可以使用Chr(160)

Selection.WholeStory 
With Selection.Find 
    .Text = "^s" 
    .Replacement.Text = ChrW(8201) 
    .MatchWildcards = True 
End With 
Selection.Find.Execute Replace:=wdReplaceAll 
+0

這看起來很完美!它只適用於選定的文本嗎?還是'Selection.WholeStory'選擇全文? – Sam 2014-10-17 20:32:03

+0

經過測試,正是我所期待的,謝謝! – Sam 2014-10-17 20:35:11

+1

文件以某種方式構成「部分」和「故事」,我並不是全部深入到這個層面。但是,是的,主要文檔體是一個'故事',並且該方法全部選中(不包括頁眉/頁腳和特殊區域)。 – KekuSemau 2014-10-17 21:13:01