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

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

在我的工作表中,我使用了一个2格合并的“加号”button,当用户点击它时,会在加号button所在的位置插入一行。 (同样,我在工作表中使用了许多这样的button)。 button会在表格中上下移动,但是它会一直保留在列A中。还有可能在列A中有许多加号button(因此为什么我select不使用.Find)。

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

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

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 

虽然.MergeArea.UnMerge逐字是什么MSDN页面说这个场景做,我没有.MergeArea试过,它的工作。 所以我的代码是现在

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

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