首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >取消合并excel行和重复数据

取消合并excel行和重复数据
EN

Stack Overflow用户
提问于 2012-02-10 00:45:26
回答 3查看 71.4K关注 0票数 35

我得到了一个存储在Microsoft Excel中的相当大的数据库,我必须尝试将其转换为有用的东西。

然而,我遇到的一个问题是一些数据被合并在一起(水平地在2秒内)。

例如:

row 1: [ x ][ x ][ x ][ x ][ x ]
row 2: [ x ][ x ][ o    o ][ x ]
row 3: [ o    o ][ x ][ o    o ]

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

我想要做的是取消合并所有行(我可以使用取消合并按钮很容易地完成),但是对于合并的单元格所在的位置,将数据复制到两个单元格中。

来自;[[ Some Data ]]

To;[ Some Data ][ Some Data ]

谢谢!任何帮助都是非常感谢的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-10 00:59:56

这是一个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
票数 63
EN

Stack Overflow用户

发布于 2022-02-16 18:08:56

这是基于@aevanko的答案,但推广到任意范围。

Sub UnMergeRange(WorkRng As Range)
    Dim cell As Range, joinedCells As Range
   
    For Each cell In WorkRng
        If cell.MergeCells Then
            Set joinedCells = cell.MergeArea
            cell.MergeCells = False
            joinedCells.Value = joinedCells.Cells(1, 1).Value
        End If
    Next
End Sub

我还做了一个改变,因为我遇到了一个角落案例,在那里它不起作用。当存在垂直合并的单元格时,该单元格包含所提供范围以上的单元格。我必须使用稍微高级一点的表达式来获得值。

票数 1
EN

Stack Overflow用户

发布于 2020-04-09 17:27:27

这是将数据放入所有单元格的另一种方法。我有一个每天发布的合并单元格的报告,为了避免每天取消合并单元格,我引用了Power Query的报告。

使用Fill down选项,我可以将数据填充到合并区域中的所有单元格。适合我!:)

Report view with marked FIll Down option

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9215022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档