gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 01:31:15 25 4
gpt4 key购买 nike

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

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

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

但是,我在下面指示的行上收到错误消息 1004:“对象‘Range’的方法‘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

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

关于vba - 对象 'MergeArea' 的方法 'Range' 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46497531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com