2013-09-01 284 views
0

我使用Excel爲我的數據生成夏季報告。我希望每個夏令都顯示在一個單元中。我用VBA,我得到了這樣的事:在Excel中使用VBA將文本分割爲幾行(單元格內)

enter image description here

我希望能夠顯示這樣的數據:

enter image description here

所有行都應以「增加」啓動或「減少」。我怎樣才能在VBA中做到這一點? (在這個例子中,我有很多單元格)如何遍歷特定單元格內的文本並在這些單詞之後添加新行?

回答

3

如果您試圖修復宏,以便在將來正確格式化行,那麼您需要添加換行符(我使用CrLf自己,但Excel,單元格,只關心換行符)通過並置元素與vbLf。

感謝@retailcoder指出vbNewLine == vbCrLf,所以你可以使用哪一個對你更有意義。

所以像Range.Value = 「1線」 & vbcrlf & 「線路2」 & vbcrlf & 「3行」 等:

Range.Value = _ 
    "line 1" & vbcrlf & _ 
    "line 2" & vbcrlf & _ 
    "line 3" 

或個人而言,我更喜歡以構建通過文本循環或使用join()方法:

Range.Value = Join(Array(_ 
    "Line 1", _ 
    "Line 2", _ 
    "Line 3"), vbCrLf) 

因爲這實際上在新的行顯示,您需要仔細檢查自動換行是(Excel將自動設置上,但以防萬一它已被覆蓋通過使用Range.WrapText = True

但是別的東西),我認識的解釋是,你只是想快速修復什麼已經是在紙張上。如果是這種情況,那麼只是做手工查找和單詞「增加」或分別,「減少」與Char(10)IncreaseChar(10)Decrease的更換,其中CHAR(10)你可以通過按Alt +數字鍵盤0010得到什麼,或者在粘貼公式=CHAR(10)的結果值。然後使用公式刪除第一個字符。

+0

是的,這將工作(假設COM1等是你建造的線說「增加X%..」)。不管你最後一行是什麼,你都不需要vbLf。 –

+0

請注意,「回車」+「換行」('vbCrLf')也可以用更易讀的'vbNewLine'來引用。 –

+0

歐凱謝謝你,所以可以說我用這個現在: 選擇= COM1&vbLf&COM2&vbLf&COM3與COM4 vbLf如果 的元素之一不存在(如果我使用例如一個條件)然後我得到空行/我該如何避免它? – user1040563

相關問題