gpt4 book ai didi

Excel VBA xlPasteFormulas粘贴不同的值

转载 作者:行者123 更新时间:2023-12-04 21:49:42 27 4
gpt4 key购买 nike

在 VBA 代码下方粘贴与复制的值不同的值。

例如:下面的代码复制 Cells(11,13).Formula "=SUM(M12:M13)"Cells(11,14).Formula ,复制和 xlPasteFormulas 后粘贴到 Cells(11,14). Cells(11,14) 公式变成 "=SUM(N12:N13) 。有人知道为什么吗?但结果在意料之中。

For x = A_OFFSET_MARKETVALUE To A_OFFSET_CURRENT
Cells(nLevel1Position, iColumn).Select
Selection.Copy

Cells(nLevel1Position, iColumn + x).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Next x

我需要将上面的代码优化为下面的代码。但是下面的代码给了我相同的公式值,这与预期的不同。应该如何优化上面的代码,但仍然与原始代码有相同的结果。
Cells(nLevel1Position, iColumn + x).Formula = Cells(nLevel1Position, iColumn).Formula

最佳答案

要“简化”这个:

Range("M11:N11").Formula = "=SUM(M12:M13)"

或者:
Range("M11:N11").Formula = Range("M11").Formula

通过这种行为,Excel“知道”您想要更改引用单元格的公式。因此,利用这种内置智能!

在您自己的代码中,您不需要使用迭代(因为您想将其偏移到 N 列),您只需更改上述内容即可:
With ThisWorkbook.Sheets("Sheet1") 'Change accordingly
.Range(.Cells(nLevel1Position, iColumn), .Cells(nLevel1Position, iColumn + A_OFFSET_CURRENT)).Formula = .Cells(nLevel1Position, iColumn).Formula
End With

在最后一种情况下,您确实需要从列 M 偏移(或在您的代码中, iColumn )使用 FormulaR1C1而不是 .Formula .

像这样:
With ThisWorkbook.Sheets("Sheet1")
.Range(.Cells(nLevel1Position, iColumn + A_OFFSET_MARKETVALUE), .Cells(nLevel1Position, iColumn + A_OFFSET_CURRENT)).Formula = .Cells(nLevel1Position, iColumn).FormulaR1C1
End With

在所有情况下,都没有迭代+额外的好处,没有粘贴到 Excel 剪贴板的值,这应该有利于您的效率。

如果您确实需要源的格式,请尝试:
With ThisWorkbook.Sheets("Sheet1")
.Cells(nLevel1Position, iColumn).Copy
.Range(.Cells(nLevel1Position, iColumn + A_OFFSET_MARKETVALUE), .Cells(nLevel1Position, iColumn + A_OFFSET_CURRENT)).PasteSpecial (xlPasteFormats)
.Range(.Cells(nLevel1Position, iColumn + A_OFFSET_MARKETVALUE), .Cells(nLevel1Position, iColumn + A_OFFSET_CURRENT)).Formula = .Cells(nLevel1Position, iColumn).FormulaR1C1
Application.CutCopyMode = False
End With

关于Excel VBA xlPasteFormulas粘贴不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57203092/

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