excel - 如何创建输出一系列单元格内容的 Excel 函数

标签 excel vba

我正在尝试创建一个 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/

相关文章:

vba - Windows(ThisWorkbook.Name).Visible = True 导致 Excel 自动恢复文件出错

excel - Excel VBA 中错误处理程序的缩进

VBA 无模式窗体停止功能键

excel - 如何从日期中提取月份编号并返回月份名称?

vba - 在 Excel 2010 中将单元格内容分成单独的行

vba - 用户表单初始化后更新用户表单列表框

VBA 增加 TextBox#.value 中的 "#"

html - VBA - 查找前面的 html 标记

sorting - Excel VBA 排序

excel - 在Excel中使用VBA重命名集合中项目的键