2014-07-23 59 views
0

我需要通過Excel宏將兩個不同的文本部分自動插入到新生成的文件中。這是我的代碼的一個例子。在Excel中爲Word文件創建VBA中的Tabstops

首先我清除所有現有的標籤以獲得一個乾淨的文檔,然後我想把「這個文本應該在左邊對齊」和左邊對齊,並且「這個文本應該在右邊對齊」與右邊對齊在同一行上。

.Content.Paragraphs.TabStops.ClearAll 
.Content.InsertAfter "This text should be aligned on the left" 

.Content.Paragraphs.TabStops.Add Position:=NewPos, _ 
     Alignment:=wdAlignTabRight, _ 
     Leader:=wdTabLeaderLines 

.Content.InsertAfter "This text should be aligned on the right" 
.Content.InsertParagraphAfter 

使用此命令我設法生成Word中的製表位,但我似乎不能夠進行定位,或使右對齊「這段文字應該在右對齊」。

最後,它應該是這樣的:

兩個文本部分應當由VBA生成並對準這樣。

picture

回答

1

是下面的代碼爲你工作?

Sub AlignLeftAndRight() 
    Selection.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(16) _ 
     , Alignment:=wdAlignTabRight, Leader:=wdTabLeaderSpaces 
    Selection.TypeText Text:="This text should be aligned on the left" 
    Selection.EndKey Unit:=wdLine 
    Selection.TypeText Text:=vbTab & "This text should be aligned on the right" 
End Sub 
+0

感謝您的快速回答。每當我嘗試啓動它時,都會收到錯誤消息「編譯錯誤:子或功能未定義」。之後,CentimetersToPoints將突出顯示。 – martiong

+0

至少該子過程適用於Word 2010.您使用的是哪個版本? – Kokkie

+1

舊線程,但對於那些找到它的人,CentimetersToPoints不是Excel 2007的一部分(至少在我的安裝中),但如果你谷歌「釐米點」,你會發現因子是28.3464567,所以你可以用CentimetersToPoints(16) 16 * 28.3464567或編寫您自己的轉換功能。 – buttonsrtoys