我有一列,其中有一个公式/函数,该公式/函数以其他单元格作为参数。但是,为了便于阅读,我在该列中每隔几行设置一个小计和空白。现在我决定更改公式/函数,但由于小计/空白单元格,我无法对整个列进行复制+粘贴,而且我无法进行更改+替换,因为函数中有参数使用其他单元格,因此列中每个单元格的内容都不同。
例如,如果公式是=if(A5>24,1,"")
,我想将其更改为=AA_userfn(A5,B5)
知道如何轻松地更改它吗?目前,我一次复制粘贴几行,但这很繁琐。
也许 Sub 将遍历整个列(列号作为输入参数)并查找=if(
,然后用=aa_userfn(Ax, By)
其中和替换它,其中Ax
和By
是根据当前更改的单元格的位置相对于该单元格中的先前值进行计算的。
欢迎任何想法
答案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