Как обновить несколько массивов формул в Рабочем листе без Control + Shift + Enter? - PullRequest
0 голосов
/ 04 февраля 2020

Я использую формулу массива для примерно 1000+ строк:

=SUM(N(FREQUENCY(IF(($B$2:$B$21=G8)*($C$2:$C$21="v1")*($D$2:$D$21="f"),$E$2:$E$21),$E$2:$E$21)>0))

Но я должен нажать Control+Shift+Enter для каждой строки.

Я пытался избежать этого с помощью vba код:

Dim rngFormulas           As Range
Dim rngCell               As Range
Dim lngCalcMode           As Long

On Error Resume Next
Set rngFormulas = Sheets("Overall Test Summary").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

Я получаю сообщение об ошибке в строке:

.FormulaArray = "=IFERROR(" & Mid$(.FormulaArray, 2) & ",0)"

Есть ли способ избежать нажатия Control+Shift+Enter для обновления формул на моем листе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...