首先,VBA新手。vba函數:用換行符返回字符串
我正在實施此解決方案how-to-merge-all-column-into-one-cell-in-excel[stackoverflow],但有一個後續。
A1:I
A2:am
A3:a
A4:boy
我的輸出是:Iamaboy
,但我想在一個單元:
I
am
a
boy
似乎功能不與vbNewLine
,chr(10)
或chr(13)
返回字符串...
首先,VBA新手。vba函數:用換行符返回字符串
我正在實施此解決方案how-to-merge-all-column-into-one-cell-in-excel[stackoverflow],但有一個後續。
A1:I
A2:am
A3:a
A4:boy
我的輸出是:Iamaboy
,但我想在一個單元:
I
am
a
boy
似乎功能不與vbNewLine
,chr(10)
或chr(13)
返回字符串...
一個行代碼:
Range("B1").Formula = join(application.transpose(Range("A1:A4")),vblf)
只需使用CHAR(10)分隔符:
=ConcatenateRange(A1:A4;CHAR(10))
我肯定會贊成這個,因爲它似乎應該工作,但它不。 –
@DanielCook你嘗試CHAR(13)嗎?你重新計算工作表(F9)? –
我卡住了這個,一旦我使用'包裝文本',它確實工作。
用途:
=A1&"[Alt+Enter]"&A2&"[Alt+Enter]"&A3&"[Alt+Enter]"&A4
答案是,因爲tlewin說
=ConcatenateRange(A1:A4,CHAR(10))
或者,使用[ALT-ENTER]你可以寫這樣的
=ConcatenateRange(A1:A4,"
")
「但是等一下,「你說,」我試過了,它不起作用!「
那麼,你會發現,當你在Excel中手動輸入諸如I[alt-enter]am[alt-enter]a[alt-enter]boy
之類的東西,或者甚至執行諸如[A1] = "I" & vbNewLine & "am"
之類的語句時,Excel會自動更改單元格格式並打開自動換行。文字換行是要求的換行符才能顯示在單元格中。但是,如果從UDF返回一個包含換行符的字符串,則Excel不會更新格式。
我能想到的兩種可能的解決方案:
Application.Caller
參考,然後設置使用這個功能的任意單元格手動啓用自動換行調用Application.OnTime(now, "AddWordWrap")
並寫入AddWordWrap子例程,以便它使用存儲的引用將wordwrap格式添加到單元格中(這是因爲您無法更新UDF中的單元格格式)。這種方法是越野車和問題。嘗試使用此
Sheet1.Range("A1").Value = "sgar" & Chr(10) & "saha"
Cells(row, column) = "current line" & Chr(10) & "new line"
你需要設置'包裹text'你在Excel中手動細胞,太。 –
http://www.ozgrid.com/forum/showthread.php?t=16059 –