首先,我是VBA的新手。
我正在实施这个解决方案如何将Excel中的所有列合并为一个单元格[stackoverflow],但有一个后续问题。
A1:I
A2:am
A3:a
A4:boy
我的输出结果是:Iamaboy
,但我想要在一个单元格中显示:
I
am
a
boy
函数似乎不返回带有vbNewLine
,chr(10)
或chr(13)
的字符串...
首先,我是VBA的新手。
我正在实施这个解决方案如何将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)
=ConcatenateRange(A1:A4,CHAR(10))
=ConcatenateRange(A1:A4,"
")
I[alt-enter]am[alt-enter]a[alt-enter]boy
这样的内容,或者执行[A1] = "I" & vbNewLine & "am"
这样的语句时,Excel会自动更改单元格格式并打开自动换行。自动换行是显示单元格中换行符的必要条件。但是,如果从UDF返回一个带有换行符的字符串,Excel不会更新格式。Application.Caller
中,然后设置一个Application.OnTime(now, "AddWordWrap")
调用,并编写AddWordWrap子例程,以便它使用存储的引用向单元格添加自动换行格式(因为无法在UDF中更新单元格的格式)。该方法存在错误和问题。只需使用CHAR(10)分隔符:
=ConcatenateRange(A1:A4;CHAR(10))
使用:
=A1&"[Alt+Enter]"&A2&"[Alt+Enter]"&A3&"[Alt+Enter]"&A4
尝试使用这个
Sheet1.Range("A1").Value = "sgar" & Chr(10) & "saha"
Cells(row, column) = "current line" & Chr(10) & "new line"
我把它插入后,只要使用“换行文本”,它就可以工作。