2009-11-23 76 views
0

我正在Word中放置一個模板,使用用戶填寫的表單填充文檔。使用VBA格式化來自Mulitline文本框的文本

我目前所堅持的位在文件末尾,列出了cc的位置。

表單中有一個多行文本框,用戶將其放入cc中,每行一個。

然後我想添加到文檔的結尾的文本框的內容,但在正確的格式。具體地講,它應該看起來像:

cc: First CC contact 
     Second CC contact 
     so on and so forth 

我試圖做到這一點使用2個書籤,所以我的代碼目前是:

' If 'CC' box has content, add it 
If doc_CC.TextLength > 0 Then 
    .Bookmarks("CC").Range.Text = vbCr + "cc:" 
    .Bookmarks("CCs").Range.Paragraphs.Indent 
    .Bookmarks("CCs").Range.Text = doc_CC + vbCr 
End If 

然而,當這個運行時,它看起來像在頁面上:

 cc:  first contact 
     second contact 
     and so on 

認識到2書籤方法有點麻煩,但它似乎是當時的一個好主意 - 顯然情況並非如此!已經做了一些探索與斯普利特做的方式,但沒有取得很大的進展,這個道路上 - 懷疑我用google搜索錯誤的東西。

我該如何做到這一點,使格式符合需要?任何幫助是極大的讚賞。

回答

0

嘗試插入製表符? + Chr(9)甚至+ vbTab可能工作。

+0

我已經嘗試使用製表符而不是段落縮進。第一行看起來不錯,但後面的行不縮進(這是一個驚喜 - 它的行爲與您手動輸入到文檔中的行爲不一樣 - 如果您選中,然後按回車,您的下一行將被選中。在vba中添加選項卡,情況並非如此,下一行將默認回到左邊距。 – Matt 2009-11-23 15:39:06

+0

爲什麼不爲每行添加一個製表符? – 2009-11-23 16:46:02

0

找到了一個工作,雖然沒有回答實際的問題,但是如何做到這一點,確實產生了相同效果的結果。

已經使用了2列表而沒有行,取而代之的是a1的內容是「cc:」,並且a2的內容是任何被輸入到多行文本框中的內容。如果文本框中沒有任何內容,則該表被刪除。

我會繼續關注這個問題,所以如果有人確實有適當的答案,我可以相應地標記它。

0

另一種可能性是使用懸掛縮進來格式化cc段落(如用於子彈或編號)。使用換行符 - Chr(11) - 代替vbcr來分隔每個條目。文本應該都排隊,然後...