У меня есть два именованных диапазона: 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
.
Несколько решений, которые не применимы в моем случае:
- , копирование и вставка приведут к правильный результат, но эта процедура должна повторяться тысячи раз, поэтому производительность является критической, а повышение производительности с помощью назначения в 10 раз
- меняет формулу, чтобы иметь ссылку в правильном положении, что неприменимо, поскольку Я работаю с большим, сложным и старым файлом, где изменение сотен формул невозможно, и
Target
может изменить положение относительно Source