2

У меня есть столбец с формулой / функцией, которая имеет другие ячейки в качестве параметров. Однако в столбце каждые несколько строк есть промежуточные итоги и пробелы для удобства чтения. Теперь я решил изменить формулу / функцию, но я не могу сделать копирование + вставку для всего столбца из-за промежуточных итогов / пустых ячеек, и я не могу сделать изменение + замена, потому что в функциях есть параметры, которые используют другие ячейки и, таким образом, это отличается в каждой ячейке в столбце.

Например, если формула =if(A5>24,1,"") и я хочу изменить ее на =AA_userfn(A5,B5)

Есть идеи, как это легко изменить? в настоящее время я копирую + вставляю несколько строк за раз, но это утомительно.

Может быть, Sub, который будет идти по всему столбцу (номер столбца в качестве входного параметра) и ищет =if( , а затем заменяет его на =aa_userfn(Ax, By) где Ax и By рассчитываются на основе позиции ячейка в настоящее время изменилась со ссылкой на предыдущие значения в этой ячейке.

Любые идеи будут приветствоваться

1 ответ1

1

Изменить в соответствии с вашими потребностями

Public Sub UpdateFormula()
Dim r As Long, c As Long, n As Long, x As Long, a As Long
Dim lRow As Long
Dim rngSlct As Range
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

'Select the column you want to update. This can be multiple columns
Set rngSlct = Selection
With rngSlct
    x = .Columns.count
'Loop through all the selected columns
For n = 1 To x
    a = rngSlct(1, n).Column
lRow = Cells.Find(What:="*", After:=[A1], SearchDirection:=xlPrevious).row
c = a

With ActiveCell
    For r = ActiveCell.row To lRow
        If Left(Cells(r, c).Formula= "=If(" Then
            Cells(r, c).Formula = 'Type your new formula here
        End If
    Next r
End With

Next n
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .