Como mudar uma função / fórmula em uma coluna inteira onde eu 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 toda 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 é =if(A5>24,1,"")e eu quero alterá-lo para=AA_userfn(A5,B5)

Alguma ideia de como mudá-lo facilmente? Atualmente eu copio e colo algumas linhas de cada 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 substitua-o por =aa_userfn(Ax, By)where Axe Byseja calculado com base na posição da célula atualmente alterada em referência aos valores anteriores nessa célula .

Todas as idéias serão bem-vindas

Respostas:


1

Mude para atender à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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.