2013-06-11 33 views

回答

3

一個行代碼:

Range("B1").Formula = join(application.transpose(Range("A1:A4")),vblf) 
0

只需使用CHAR(10)分隔符:

=ConcatenateRange(A1:A4;CHAR(10)) 
+0

我肯定會贊成這個,因爲它似乎應該工作,但它不。 –

+0

@DanielCook你嘗試CHAR(13)嗎?你重新計算工作表(F9)? –

-1

我卡住了這個,一旦我使用'包裝文本',它確實工作。

0

用途:

=A1&"[Alt+Enter]"&A2&"[Alt+Enter]"&A3&"[Alt+Enter]"&A4 
1

答案是,因爲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不會更新格式。

我能想到的兩種可能的解決方案:

  1. 您在
  2. (不推薦)您ConcatenateRange UDF調用時存儲在Application.Caller參考,然後設置使用這個功能的任意單元格手動啓用自動換行調用Application.OnTime(now, "AddWordWrap")並寫入AddWordWrap子例程,以便它使用存儲的引用將wordwrap格式添加到單元格中(這是因爲您無法更新UDF中的單元格格式)。這種方法是越野車和問題。
0

嘗試使用此

Sheet1.Range("A1").Value = "sgar" & Chr(10) & "saha" 
0
Cells(row, column) = "current line" & Chr(10) & "new line"