I'm trying to create a function that will split its own content into multiple lines. I need to create a custom one because I will be doing more operations on it so I can't use built-in functions like CONCATENATE
or TEXTJOIN
.
My code:
Public Function Description(formula As String) As String
arr = Split(formula, ";")
For Each Item In arr
arr2 = Split(Item, ":")
Description = Description & "Row " & arr2(0) & " Item " & arr2(1) & vbNewLine
Next
I use it in a cell with =Description(string)
where string
is an one-line text like:
2:1;3:2;4:5
It should return:
Row 2 Item 1
Row 3 Item 2
Row 4 Item 5
Instead it returns:
Row 2 Item 1Row 3 Item 2Row 4 Item 5
I tried to use vbNewLine
, vbCrLf
, vbCr
, vbLf
, Char(10)
and Char(13)
, nothing works.
Does anybody know a workaround for this problem?
CodePudding user response:
Use the vbLf
-character (seems that vbNewline
also works) to get a line break in Excel.
However, you need to set the WrapText
property in the cell, else the text will be displayed as one single line.
ActiveCell = "ABC" & vbLf & "XYZ"
ActiveCell.WrapText = True