我正在尝试创建一个 Excel 函数来连接单元格范围 C4:K9 中包含的文本。
虽然下面的代码连接了单元格范围内的文本,但我没有成功在每行之间插入回车符 (vbCrLF)。因此,当我在单元格中键入函数时,我希望看到输出值,我希望它是 C4:K4、回车符、C5:K5、回车符等的内容,直到 C9:K9 都在一个单元格中。
Function Join(rng As Range, delimiter As String) As String
Dim cell As Range, rowIndex As Long
For rowIndex = 1 To rng.Rows.Count
For Each cell in rng(cells(rowIndex,3), cells(rowIndex,11))
Join = Join & cell.Text & delimiter
Next cell
Join = Left(Join, Len(Join) - Len(delimiter)) & vbCrLF
Next rowIndex
End Function
有人知道如何使这个功能发挥作用吗?
最佳答案
当您想要循环遍历一行中的每个单元格时,可以通过以下方式完成:For Each cell In rng.Rows(rowIndex).Cells
。
要在单元格内显示多行,您需要 vbLf
作为每行的最后一个字符(并且“换行文本”作为单元格格式)。
Function Join(rng As Range, delimiter As String) As String
Dim cell As Range, rowIndex As Long
For rowIndex = 1 To rng.Rows.Count
For Each cell In rng.Rows(rowIndex).Cells
Join = Join & cell.Text & delimiter
Next cell
Join = Left(Join, Len(Join) - Len(delimiter)) & vbLf
Next rowIndex
End Function
最后一个提示:请尽量避免使用内部 VBA 名称(Join、RowIndex)作为您自己的函数名称或变量。
关于excel - 如何创建输出一系列单元格内容的 Excel 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56196656/