VBA合并单元的大小必须相同

时间:2018-11-01 11:33:53

标签: excel

我有以下代码在电子表格中对任务列表中的数据进行排序,首先按任务优先级将“已完成”推到底部,然后按日期排序(不包括已完成任务的任务);

Sub mcr_PushDown_Completed_Taks()
'
' Push down completed tasks

'

    'Turn off screen updating so macro working/flashing does not show
    Application.ScreenUpdating = False

    With Worksheets("Tasks")

        With .Range(.Cells(7, "A"), .Cells(.Rows.Count, "A").End(xlUp).Offset(0, 10))

            .Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _
                        Orientation:=xlTopToBottom, Header:=xlYes

            With .Resize(Application.Match(7, .Columns(1), 0) - 1, .Columns.Count)

                .Cells.Sort Key1:=.Columns(2), Order1:=xlDescending, _
                            Orientation:=xlTopToBottom, Header:=xlYes

            End With

        End With

    End With

    Range("B7").Select

End Sub

但是,当我运行宏时突然出现错误

  

为此,所有合并的单元格必须具有相同的大小。

但是,我无法使用“查找”对话框在工作表上找到任何合并的单元格。我还能如何找到合并的单元格或解决此问题?

2 个答案:

答案 0 :(得分:1)

此子项将查找合并的单元格。它使用范围的。MergeArea属性来查找要合并的单元格。 VBA不提供单元格属性,该属性会向问题“我是合并区域的一部分”返回简单的“ TRUE”,因此,如果单元格的面积与常规单元格相同,则需要进行自我评估或者它是更大区域的一部分。

Sub FindMergedCells()
Dim Rng As Range
Dim c As Range
Set Rng = Selection

With Rng
    For Each c In Rng
        If Not (c.MergeArea.Address = c.Address) Then
            Debug.Print c.Address & " is a merged cell"
        End If
    Next c
End With

End Sub

答案 1 :(得分:0)

有人重命名了工作表,因此代码在另一工作表上工作。