Como alterar uma função / fórmula em uma coluna inteira onde também tenho células vazias

2

Eu tenho uma coluna com uma fórmula / função que tem outras células como parâmetros. No entanto, na coluna, a cada poucas linhas eu tenho um subtotal e espaços em branco, por legibilidade. Agora resolvi mudar a fórmula / função mas não consigo copiar + colar na coluna inteira por causa dos subtotais / células em branco, e não posso fazer change + replace pois existem parâmetros nas funções que utilizam outras células e assim é diferente em cada célula da coluna.

Por exemplo, se a fórmula for =if(A5>24,1,"") e eu quiser alterá-la para =AA_userfn(A5,B5)

Alguma ideia de como mudá-lo facilmente? atualmente copio e colo algumas linhas por vez, mas isso é tedioso.

Talvez um Sub que percorra toda a coluna (o número da coluna como um parâmetro de entrada) e procure =if( e, em seguida, o substitua por =aa_userfn(Ax, By) , em que Ax e By são calculados com base no posição da célula atualmente alterada em referência aos valores anteriores naquela célula.

Todas as ideias serão bem-vindas

    
por Zvi 14.02.2011 / 11:51

1 resposta

1

Altere para se adequar às suas necessidades

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
    
por 14.02.2011 / 23:10