我有两个命名范围,Source
G3:M3 和 Target
G8:M10。Source
包含引用同一行范围外的单元格的公式。我想把它复制到目标范围内,如图。
我写了以下例程
Sub CopyFormulas()
TargetRangeName = "Target"
SourceRangeName = "Source"
Range(TargetRangeName).Clear
Range(TargetRangeName).Formula = Range(SourceRangeName).Formula
End Sub
公式在范围内被复制,但相对引用没有正确修改,得到如图所示的结果。
相对引用从第 3 行开始,而不是从
Target
的第一行开始。范围。一些不适用于我的解决方案:
Target
可以改变相对于 Source
的位置最佳答案
您可以通过设置 .FormulaR1C1
来做到这一点。属性而不是 .Formula
属性(property)。像这样:
Public Sub ClientCode()
Dim srcRng As Range
Dim tarRng As Range
Set srcRng = Range("Source")
Set tarRng = Range("Target")
tarRng.Formula2R1C1 = srcRng(1).Formula2R1C1
End Sub
.FormulaR1C1
维护相对引用
关于excel - 使用相对引用将公式从 [1,X] 范围复制到 [Y,X] 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59813984/