取消合并并在多张纸上复印

时间:2017-10-09 15:57:12

标签: excel-vba vba excel

我发现此网站上的以下代码非常有用

URL

我试图让它在没有运气的工作簿中的所有工作表中执行此操作。

这就是我所拥有的。它似乎仍然只在活动工作表上执行操作。任何帮助将不胜感激。

Public Sub UnmergeAndFill()
    With Selection
        If .MergeCells Then
           .MergeCells = False
           Selection.Cells(1, 1).Copy
           ActiveSheet.Paste 'Or PasteSpecial xlPasteFormulasAndNumberFormats
        End If
    End With
End Sub

1 个答案:

答案 0 :(得分:1)

你能试试吗?你的循环没有引用循环变量ws,也没有必要选择任何东西。

    Sub UnmergeAndFill()

    Dim ws As Worksheet, r As Range, r1 As Range

    For Each ws In ActiveWorkbook.Worksheets
        With ws.UsedRange
            If IsNull(.MergeCells) Or .MergeCells Then
              On Error Resume Next                
              For Each r In .SpecialCells(xlCellTypeBlanks)
                    If r.MergeCells Then
                        Set r1 = r.MergeArea
                        r.UnMerge
                        r1.Value = r.Value
                    End If
              Next r
             on error goto 0
            End If
        End With
    Next ws

    End Sub