Я хочу скопировать диапазон ячеек, каждая из которых имеет формулу, которая ссылается на другую ячейку, и вставить эти формулы в другой диапазон, используя собственные относительные ссылки вместо автоматических Excel.
Например, вна этом листе я хочу:
- вручную выбрать H4: H7 (формулы Яна)
- запустить макрос
- вручную переместиться в два столбца вправо в ячейку J4и используйте стандартную вставку Excel (ctrl_v) для вывода желаемого результата в формулах (формулах февраля) в J4: J7.
здесь текущий лист: 
и вот представление листа с Ctrl ~, чтобы увидеть формулы: 
В представлении формулы показан требуемый вывод в столбце J с февралемформулы.Так как формулы февраля всегда ссылаются на ячейки, которые находятся всего на один столбец от исходных ячеек, на которые ссылается Ян, если столбец февраля в формулах был на один столбец от января (т. Е. Если бы февраль был в столбце I), все, что мне нужно было бы сделать, это скопироватьформулы из столбца H и вставьте их в столбец I. Однако здесь, поскольку структура листа требует вставки формул в столбец J, мне нужен макрос, который будет копировать ячейки справа от всех ячеек в столбце H, которыессылаться на значения января и сделать простую вставку в столбец J, который выдаст желаемые результаты.
это код, который я сейчас пытаюсь, и он копирует только сами формулы, но не смещение на одну ячейку.
Public Sub copy()
Dim source As Range
Dim target As Range
Set source = Range("H4:H7")
Set target = Range("J4:J7")
For i = 1 To source.Rows.Count
target.Cells(i, 1).Formula = source.Cells(i, 1).Formula
Next i
End Sub