跳到主要内容

如何串联单元格值,直到在列中找到空白单元格为止?

作者:晓阳 最后修改时间:2020-07-31
doc串联直到空白1

例如,我有一个值列表,其中包括一些空白单元格,现在,我想将空白之间的每组数据连接到一个单元格中,并在另一列中列出组合的值,如下图所示。 如何连接单元格,直到在列中找到空白单元格?

连接单元格值,直到在带有VBA代码的列中找到空白单元格为止

连接单元格值,直到使用 Kutools for Excel 在列中找到空白单元格


箭头蓝色右气泡 连接单元格值,直到在带有VBA代码的列中找到空白单元格为止

没有直接的方法可以在空白之间连接一组单元格,但是,您可以应用以下VBA代码来处理它。 请执行以下操作:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic for Applications窗口.

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块窗口.

VBA代码:连接单元格值,直到找到空白单元格

Sub Concatenatecells()
'updateby Extendoffice
    Dim xRg As Range
    Dim xSaveToRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xTStr As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please selecte the data range:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    If xRg.Columns.Count > 1 Then
        MsgBox "the selected range is more than one column", vbInformation, "Kutools for Ecel"
        Exit Sub
    End If
    Set xSaveToRg = Application.InputBox("Please selecte output cell:", "Kutools for Excel", , , , , , 8)
    If xSaveToRg Is Nothing Then Exit Sub
    Set xSaveToRg = xSaveToRg.Cells(1)
    Application.ScreenUpdating = False
    For Each xCell In xRg
        If xCell <> "" Then
            xTStr = xTStr & xCell & " "
        Else
            xSaveToRg.Value = xTStr
            Set xSaveToRg = xSaveToRg.Offset(1)
            xTStr = ""
        End If
    Next
    If xTStr <> "" Then xSaveToRg.Value = Left(xTStr, Len(xTStr) - 1)
    Application.ScreenUpdating = True
End Sub

3. 然后按 F5 键以运行此代码,并弹出一个提示框,提醒您选择要连接的数据范围,请参见屏幕截图:

doc串联直到空白10

4。 然后点击 OK,然后弹出另一个提示框,请选择一个单元格以输出级联结果,请参见屏幕截图:

doc串联直到空白11

5. 然后点击 OK 按钮,并将列列表数据连接在空白之间,请参见屏幕截图:

doc串联直到空白1


箭头蓝色右气泡 连接单元格值,直到使用 Kutools for Excel 在列中找到空白单元格

如果你有 Kutools for Excel,结合 变换范围结合 功能,您也可以尽快完成这项工作。 的 变换范围 实用程序可以帮助您将单列转换为范围,并且 结合 功能可以帮助您将转换后的范围连接到列。

Kutools for Excel : 带有300多个便捷的Excel加载项,可以在30天内免费试用. 

安装后 Kutools for Excel,请执行以下操作:

1. 选择要串联的单元格,然后单击 库工具 > 范围 > 变换范围,请参见屏幕截图:

2。 在 变换范围 对话框,检查 单列到范围 选项下 转换类型,然后选择 空白单元格分隔记录 在下面 每条记录行,请参见屏幕截图:

doc串联直到空白3

3. 然后点击 Ok,然后会弹出一个提示框,提醒您选择一个单元格以输出结果,请参见屏幕截图:

doc串联直到空白4

4。 点击 OK,并且单列数据已由空白单元格转换为多行和多列,请参见屏幕截图:

doc串联直到空白5

5。 转换后的数据位于多列中,因此您需要将它们合并为一列,请选择数据范围,然后点击 库工具 > 合并与拆分 > 合并行,列或单元格而不会丢失数据,请参见屏幕截图:

6。 在 合并列或行 对话框中,执行以下选项:

(1.)选择 合并栏 选项从 根据以下选项合并选定的单元格;

(2.)然后指定一个分隔符,用于分隔连接的值;

(3.)选择要如何处理合并的单元格。 您可以保留或删除原始数据,还可以合并合并的单元格。 看截图:

doc串联直到空白7

7。 完成设置后,单击 Ok or 申请 按钮,单元格已连接到具有特定分隔符的一列中,请参见屏幕截图:

doc串联直到空白8

立即下载和免费试用Excel的Kutools!

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (8)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi, I am using the VBA code, but instead of putting the data into separate rows, it is putting it all in a single cell. Does anyone have an idea why it is doing this?
This comment was minimized by the moderator on the site
Hi! After changing the values (ex, watermelon instead of apple) why is the formula not working?
This comment was minimized by the moderator on the site
Hello, Cristina

Our article provides VBA code, doesn't provide a formula. If you change the cell content, you must re-run the code again to get the correct result.
Thank you!
This comment was minimized by the moderator on the site
great job bro, Very useful
This comment was minimized by the moderator on the site
Hello,
You are welcome. Glad it helps. Any questions, please feel free to contact us. Have a great day.
Sincerely,
Mandy
This comment was minimized by the moderator on the site
It shows there's a syntax error on line 3 "Dim xRg As Range" when I'm trying to run this module based on method 1, what should I do about it?
This comment was minimized by the moderator on the site
Hello, JJ, The code works well in my worksheet, which Excel version do you use?Or you can insert a screesnhot of your problem here.
This comment was minimized by the moderator on the site
How would you do it if you want to base it off another column? I have similar data, but column B is a number then notes(like your fruit) in column I, I want to combine all notes in column I until there is another cell in Column B that has only number. Sometimes there are letter under B or the cells are blank which is why it needs to combine until a number. Then finally can it output back to where it started the combine? IE all notes for first number are in column j, but if the next number is 5 rows below that is fine, it just goes in column j but same row number as the number is found?
There are no comments posted here yet
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations