对象'Range'的方法'MergeArea'失败

时间:2017-09-29 22:08:34

标签: excel vba excel-vba

我将在这篇文章前言说我已经在我的工作簿中的其他地方实现了类似的逻辑而没有问题,而在我的研究中,我没有遇到任何人引用同样的困难。

在我的工作表中,我使用了一个2单元合并的“加号按钮”,当用户点击它时,会在加号按钮所在的位置上方插入一行。 (我在工作表中使用了很多这样的按钮)。按钮将在工作表中上下移动,但它将始终保留在A列中。在A列中还有可能有多个加号按钮(因此我选择不使用.Find)。

最初,我试图根据点击的单元格是否为“+”值来建立逻辑。这不起作用,我认为这是因为“目标”包含两个单元格,只有一个单元格具有“+”。因此,因为该列中唯一合并的单元格将是加号图标,所以我将其评估为细胞计数。这有效,但是当它插入行时,它会插入两行,因为Target是两个单元格。所以我的解决方法是取消合并Target,插入行,然后重新合并。 (我的工作簿中的其他地方也做了类似的事情)。

但是我收到错误消息1004:对象'Range'的方法'MergeArea'在下面的指示行上失败了。 Target是一个对象,单元格被合并,所以我不知道为什么这个方法会失败。

If Not Intersect(Target, Range("A17:A1000")) Is Nothing Then
    If Target.Cells.Count = 2 Then
       With Target
            If .MergeCells Then '<- highlighted code on error
                .MergeArea.UnMerge
                'code to insert, re-merge, etc
            End If

       End With
    End If
End If

1 个答案:

答案 0 :(得分:2)

尽管.MergeArea.UnMerge是MSDN页面为这种情况所说的做法,但我在没有.MergeArea的情况下尝试了它。所以我的代码现在是

   With Target
        If .MergeCells Then '<- highlighted code on error
            .UnMerge
            'code to insert, re-merge, etc
        End If

   End With

这似乎工作正常,所以问题解决了!

相关问题