首页 > 解决方案 > 使用相对参考将公式从 [1,X] 范围复制到 [Y,X] 范围

问题描述

我有两个命名范围,SourceG3:M3 和TargetG8:M10。

Source包含一个引用同一行范围之外的单元格的公式。我想把它复制到目标范围内,如图。

设置

我写了以下例程

Sub CopyFormulas()

TargetRangeName = "Target"
SourceRangeName = "Source"

Range(TargetRangeName).Clear

Range(TargetRangeName).Formula = Range(SourceRangeName).Formula

End Sub

公式在范围内被复制,但相对引用没有正确修改,得到如图所示的结果。

在此处输入图像描述

相对引用从第 3 行开始,而不是从范围的第一行开始Target

一些不适用于我的解决方案:

标签: excelvba

解决方案


您可以通过设置.FormulaR1C1属性而不是属性来执行此操作.Formula。像这样:

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维护相对引用


推荐阅读