gpt4 book ai didi

excel - 使用相对引用将公式从 [1,X] 范围复制到 [Y,X] 范围

转载 作者:行者123 更新时间:2023-12-04 21:29:06 24 4
gpt4 key购买 nike

我有两个命名范围,Source G3:M3 和 Target G8:M10。
Source包含引用同一行范围外的单元格的公式。我想把它复制到目标范围内,如图。

setup

我写了以下例程

Sub CopyFormulas()

TargetRangeName = "Target"
SourceRangeName = "Source"

Range(TargetRangeName).Clear

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

End Sub

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

enter image description here

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

一些不适用于我的解决方案:
  • 复制和粘贴会产生正确的结果,但此例程要重复数千次,因此性能至关重要,使用赋值的性能提高 10 倍
  • 更改公式以将引用放在正确的位置,这是不适用的,因为我正在处理一个大型、复杂和旧的文件,其中更改数百个公式是不可行的,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/

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