Vba 方法';合并区域';对象的';范围';失败
在这篇文章的开头,我会说,我在我的工作手册的其他地方没有问题地实现了类似的逻辑,在我的研究中,我没有遇到任何人引用同样的困难 在我的工作表中,我使用了一个2单元合并的“加号按钮”,当用户单击它时,它将在加号按钮所在的位置上方插入一行。(同样,我在工作表中使用了许多类似的按钮)。按钮将在工作表中上下移动,但它始终保留在A列中。A列中也可能有许多加号按钮(因此我选择不使用.Find) 起初,我试图根据单击的单元格是否具有“+”值来建立逻辑。这不起作用,我想这是因为“Target”包含两个单元格,只有一个单元格有“+”。因此,因为该列中唯一合并的单元格将是加号图标,所以我将它改为按单元格计数计算。这是可行的,但当它插入行时,它会插入两行,因为目标是两个单元格。所以我的解决方法是取消合并目标,插入行,然后重新合并。(我也在工作簿的其他地方做类似的事情) 但是,我在下面指示的行上收到错误消息1004:“对象‘范围’的方法‘MergeArea’失败”。目标是一个对象,单元格被合并,所以我不知道为什么这个方法会失败Vba 方法';合并区域';对象的';范围';失败,vba,excel,Vba,Excel,在这篇文章的开头,我会说,我在我的工作手册的其他地方没有问题地实现了类似的逻辑,在我的研究中,我没有遇到任何人引用同样的困难 在我的工作表中,我使用了一个2单元合并的“加号按钮”,当用户单击它时,它将在加号按钮所在的位置上方插入一行。(同样,我在工作表中使用了许多类似的按钮)。按钮将在工作表中上下移动,但它始终保留在A列中。A列中也可能有许多加号按钮(因此我选择不使用.Find) 起初,我试图根据单击的单元格是否具有“+”值来建立逻辑。这不起作用,我想这是因为“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
如果不相交(目标、范围(“A17:A1000”))则为空
如果Target.Cells.Count=2,则
有目标
如果.MergeCells然后“虽然.MergeArea.UnMerge是MSDN页面上对该场景所说的逐字逐句的操作,但我在没有.MergeArea的情况下尝试了它,它成功了。所以我的代码现在是
With Target
If .MergeCells Then '<- highlighted code on error
.UnMerge
'code to insert, re-merge, etc
End If
End With
带目标的
If.MergeCells然后“如果您的问题是使用合并单元格插入行,则Target.EntireRow.Insert xlDown
是否有效?@L42问题不是插入行,而是插入两行,而我只需要一行。我能想到的唯一解决方法是首先取消合并单元格。