You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动合并已排序数组中B列相同蔬菜类型的单元格?

自动合并B列相同蔬菜类型单元格的方案

当然能自动合并啦!既然你的数据已经按B列(蔬菜类型)、C列(蔬菜品种)排好序了,相同类型的单元格都是连续的,完全不用手动选区域折腾。下面给你两种实用方案,对应不同需求:

方案1:用Excel内置功能一键搞定(适合单次操作)

这是最快捷的方法,几步就能完成:

  • 选中B列所有包含蔬菜类型的单元格区域(比如B2:B100,假设表头在B1)
  • 切换到「开始」选项卡,找到「对齐方式」组里的「合并后居中」按钮旁边的小箭头,选择**「合并相同单元格」**
  • 确认弹出的提示框后,相同蔬菜类型的连续单元格就会自动合并完成!

方案2:用VBA宏批量处理(适合重复操作场景)

如果之后还要频繁处理类似格式的数据,写个简单的VBA宏能省不少事:

  1. 按下Alt + F11打开VBA编辑器
  2. 右键点击左侧的工作簿名称 → 「插入」→ 「模块」
  3. 粘贴以下代码:
Sub MergeSameVegTypes()
    Dim lastRow As Long
    Dim currentCell As Range
    
    ' 获取B列最后一行的行号
    lastRow = Cells(Rows.Count, "B").End(xlUp).Row
    Set currentCell = Range("B2") ' 从B2开始处理(跳过表头)
    
    ' 关闭合并时的提示弹窗,提升效率
    Application.DisplayAlerts = False
    
    Do While currentCell.Row <= lastRow
        ' 找到当前单元格下方连续相同值的最后一行
        Dim mergeEnd As Range
        Set mergeEnd = currentCell
        Do While mergeEnd.Row < lastRow And mergeEnd.Value = mergeEnd.Offset(1, 0).Value
            Set mergeEnd = mergeEnd.Offset(1, 0)
        Loop
        
        ' 合并从currentCell到mergeEnd的区域
        If Not currentCell Is mergeEnd Then
            Range(currentCell, mergeEnd).Merge
        End If
        
        ' 跳转到下一个不同值的单元格
        Set currentCell = mergeEnd.Offset(1, 0)
    Loop
    
    Application.DisplayAlerts = True
End Sub
  1. 按下F5运行宏,B列的相同蔬菜类型单元格就会自动合并了

小提醒

  • 因为你的数据已经按B、C列排序,相同类型的单元格是连续的,所以这两种方法都能完美生效;如果数据没排序的话,合并会出错,不过你已经做好排序了,放心用~
  • 合并单元格后,要是需要编辑内容,直接点击合并后的单元格修改就行,或者右键选择「取消合并单元格」再编辑

内容的提问来源于stack exchange,提问作者william

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:48:56