取消合并excel行和重复数据

H3k*_*eir 29 excel vba excel-vba

我已经获得了一个存储在Microsoft Excel中的相当大的数据库,我必须尝试将其转换为有用的东西.
但是,我遇到的一个问题是某些数据被合并在一起(水平地在2s内).

例如;

row 1: [ x ][ x ][ x ][ x ][ x ]
row 2: [ x ][ x ][ o    o ][ x ]
row 3: [ o    o ][ x ][ o    o ]
Run Code Online (Sandbox Code Playgroud)

其中x是单个单元格,而o是合并在一起的

我想要做的是取消所有行(我可以用unmerge按钮轻松完成),但是对于合并单元格的位置,将数据复制到2个单元格中.
从; [[ Some Data ]]
至;[ Some Data ][ Some Data ]

谢谢!任何帮助表示赞赏.

aev*_*nko 51

这是一个VBA解决方案.此宏将搜索活动工作表中的每个单元格以查看它们是否已合并.如果是,则将合并单元格的范围存储在temp中.范围变量,取消合并单元格,然后使用未合并范围中的第一个单元格的值填充范围(值是什么).

Sub UnMergeFill()

Dim cell As Range, joinedCells As Range

For Each cell In ThisWorkbook.ActiveSheet.UsedRange
    If cell.MergeCells Then
        Set joinedCells = cell.MergeArea
        cell.MergeCells = False
        joinedCells.Value = cell.Value
    End If
Next

End Sub
Run Code Online (Sandbox Code Playgroud)


mon*_*lls 14

  1. 选择已合并数据的范围
  2. 单击"合并和中心"以取消合并单元格
  3. 再次选择数据范围
  4. 按Ctrl + G>特殊>空白
  5. 按=和向上箭头键
  6. 按Ctrl + Enter