Excel VBA代码消合并单元格并将合并单元格的值填充到所有原来合并的单元格中

Sub UnmergeAndFill()
    Dim ws As Worksheet
    Dim rng As Range
    Dim mergedRange As Range
    Dim cellValue As Variant
    
    ' 设置为当前活动工作表
    Set ws = ActiveSheet
    
    ' 遍历工作表中的所有单元格
    For Each rng In ws.UsedRange
        ' 检查是否是合并单元格
        If rng.MergeCells Then
            ' 获取合并区域
            Set mergedRange = rng.MergeArea
            ' 获取合并区域的第一个单元格的值
            cellValue = mergedRange.Cells(1, 1).Value
            ' 取消合并
            mergedRange.UnMerge
            ' 将值填充到整个原来合并的区域
            mergedRange.Value = cellValue
        End If
    Next rng
    
    MsgBox "合并单元格已取消并填充完成!", vbInformation
End Sub