【发布时间】:2017-09-29 22:08:33
【问题描述】:
我会在这篇文章的开头说我在我的工作簿的其他地方实现了类似的逻辑,没有问题,在我的研究中,我没有遇到任何人引用同样的困难。
在我的工作表中,我使用了一个 2 单元格合并的“加号按钮”,当用户单击它时,它将在加号按钮所在的位置上方插入一行。 (我再次在我的工作表中使用了许多这样的按钮)。该按钮将在工作表上上下移动,但它始终保留在 A 列中。A 列中也有可能有许多加号按钮(因此我选择不使用 .Find)。
最初,我尝试将我的逻辑基于单击的单元格是否具有“+”值。这不起作用,我认为这是因为“目标”包含两个单元格,而只有一个单元格有“+”。因此,因为该列中唯一合并的单元格将是加号图标,所以我让它评估单元格计数。这可行,但是当它插入行时,它会插入两行,因为 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
【问题讨论】:
-
如果您在使用合并单元格插入行时遇到问题,
Target.EntireRow.Insert xlDown可以工作吗? -
@L42 问题不是插入一行,问题是它插入了两行,我只需要一个。我能想到的唯一解决方法是先取消合并合并的单元格。