excel批量更新工作表中的所有数组公式

时间:2014-11-12 11:33:21

标签: excel excel-vba vba

在我的工作表中,我有几百个UNIQUE公式(简单和数组)。一些单元格包含数组公式和一些简单公式。 我不得不批量编辑(查找和替换)所有公式中的一些字符。我将它们作为文本导出到记事本++并完成替换作业并将它们带回并粘贴在工作表上。 当我按下'计算工作表'或者alt + ctrl + f9,它不会更新数组公式。 有没有办法更新(刷新)所有公式?或者我应该逐个去按ctrl + shift + enter?考虑到我拥有的细胞数量,这根本不可行。 我怎么能用vba做到这一点? 感谢

1 个答案:

答案 0 :(得分:2)

你需要这样的例程 - 最后可能需要一段时间才能重新计算它的声音!

Sub AddErrorHandler()
    Dim rngFormulas           As Range
    Dim rngCell               As Range
    Dim lngCalcMode           As Long

    On Error Resume Next
    Set rngFormulas = ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
    On Error GoTo 0

    If Not rngFormulas Is Nothing Then
        With Application
            .ScreenUpdating = False
            lngCalcMode = .Calculation
            .Calculation = xlCalculationManual
        End With
        For Each rngCell In rngFormulas.Cells
            If LCase$(Left$(rngCell.Formula, 9)) <> "=iferror(" Then
                If rngCell.HasArray Then
                    With rngCell.CurrentArray
                        .FormulaArray = "=IFERROR(" & Mid$(.FormulaArray, 2) & ",0)"
                    End With
                Else
                    With rngCell
                        .Formula = "=IFERROR(" & Mid$(.Formula, 2) & ",0)"
                    End With
                End If
            End If
        Next rngCell
        With Application
            .Calculation = lngCalcMode
            .ScreenUpdating = True
        End With

    End If
End Sub