我在一个工作簿中有这个小问题。我想通过使用数组公式来简化一个非常长的函数。该公式运行良好,并产生预期的结果。但是,在我的VBA宏中,我先进行复制,然后执行公式粘贴和格式粘贴。格式粘贴崩溃:“无法粘贴,因为复制和粘贴区域的大小不同”(或类似的)。如果我使用不是数组公式的任何其他公式,这个问题就解决了。
以前有没有人经历过这种情况,并找到了合适的解决方案?我似乎在谷歌上找不到帮助的答案。如果需要,我会发布代码,但它是相当直接的(Row.Copy ... Rows(something, something).PasteSpecial...),并且无论如何都可以使用非数组公式。
编辑:代码:
sRapDetail = "rap - détails"
Sheets(sRapDetail).Select
iStart = 17
iFormuleExceptionRNIAC = 13
iFormule1 = 14
iFormule2 = 15
iFormuleExceptionAR = 16
range(Rows(iStart - 1), Rows(1000)).Hidden = False
iLastRow = Cells(65535, "B").End(xlUp).Row
range("A" & iStart & ":AL" & iLastRow).Select
' selection.Borders(xlInsideVertical).LineStyle = xlNone
' selection.Borders(xlEdgeBottom).LineStyle = xlNone
selection.Delete Shift:=xlUp
'RNIAC
Sheets("Zoom0").Select
If Cells(21, "B").Value = "" Or Cells(22, "B").Value = "" Then
iLastRow = 21
Else
iLastRow = Cells(21, "B").End(xlDown).Row
End If
iNbRow = iLastRow - 20
Sheets(sRapDetail).Select
Rows(iFormuleExceptionRNIAC).Select
selection.Copy
range(Rows(iStart), Rows(iStart - 1 + iNbRow)).Select
selection.PasteSpecial xlPasteFormulas
selection.PasteSpecial xlPasteFormats(是的,我知道selection的用法很难看(至少在这种情况下是这样),但这篇文章是我的一个同事写的)
发布于 2012-10-26 00:05:19
出现这个问题是因为您不能在数组公式的顶部复制它。
例如,如果您在单元格A1中有一个数组公式,并且希望将其复制到单元格A10,则不能复制A1并突出显示A1:A10并进行粘贴。恐怕行不通。您必须复制A1,然后高亮显示A2:A10。
也就是说,问题很可能存在于来自Rows(iFormuleExceptionRNIAC)的行可能与此range(Rows(iStart), Rows(iStart - 1 + iNbRow))相交的事实中
如果你能确保它们不相交,那么复制数组公式就可以了。
发布于 2022-03-03 09:17:33
将格式粘贴到后面,然后粘贴公式。
https://stackoverflow.com/questions/13070982
复制相似问题