Я пытаюсь переместить (сместить) только части расположения столбца формулы в другое расположение столбца на указанное количество столбцов. Ячейки формулы меняются от листа к листу. У меня есть тысячи формул, которые имеют разные ячейки. Поэтому я предпочитаю какое-то решение для макросов VBA. Это оригинальная формула:

=IF(AND($A$9=1,GH10=GT12),0,IF(AND($A$9=2,GI10=GS13),0,IF(AND($A$9=3,GJ10=GR14),0,1)))

и хочу, чтобы это изменилось на это:

=IF(AND($A$9=1,GI10=GT12),0,IF(AND($A$9=2,GJ10=GS13),0,IF(AND($A$9=3,GK10=GR14),0,1)))

это на один столбец больше, но только числитель (GH10 -> GI10 и GI10 -> GJ10 и т. д.). И имеют одинаковые постоянные номера строк.

Я нашел этот код (ниже), он позволяет мне выбрать из выпадающего списка, сколько столбцов нужно переместить (НЕ ОБЯЗАТЕЛЬНО, если я могу ввести его в код вручную), но это также меняет знаменатель формулы. (ПРИМЕЧАНИЕ: Я НЕ МОГУ добавить $ в части формулы, которые я не хочу менять. Формула должна оставаться динамичной).

Sub Macro1()
    Dim nbr As Long, cel As Range, cels As Range, sh As Worksheet
    Set cels = Selection

    nbr = CLng(InputBox("Enter offset:"))

    Set sh = Worksheets.Add

    For Each cel In cels

        If cel.HasFormula Then

            sh.Cells(cel.Row, cel.Column + nbr).FormulaR1C1 = cel.FormulaR1C1
            cel.Formula = sh.Cells(cel.Row, cel.Column + nbr).Formula

        End If

    Next

    Application.DisplayAlerts = False
        sh.Delete
    Application.DisplayAlerts = True

End Sub

Это для одной клетки за раз. Если есть работающий код VBA, может ли он соответствовать выбранному диапазону в отличие от одной ячейки одновременно?

0