我得到了一个存储在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 ]
谢谢!任何帮助都是非常感谢的。
发布于 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
发布于 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
我还做了一个改变,因为我遇到了一个角落案例,在那里它不起作用。当存在垂直合并的单元格时,该单元格包含所提供范围以上的单元格。我必须使用稍微高级一点的表达式来获得值。
发布于 2020-04-09 17:27:27
这是将数据放入所有单元格的另一种方法。我有一个每天发布的合并单元格的报告,为了避免每天取消合并单元格,我引用了Power Query的报告。
使用Fill down选项,我可以将数据填充到合并区域中的所有单元格。适合我!:)
https://stackoverflow.com/questions/9215022
复制相似问题