Najskuteczniejszy sposób dodawania formatowania Excel - VBA

Mam makro, które dodaje setki linii danych do arkusza kalkulacyjnego Excel. Wywoływam procedurę z pętli, która wstawia każdą linię danych. Stosuję formatowanie wiersza za każdym razem, gdy wstawiam te dane. Jednak podczas moich testów odkryłem, że mogę wstawić wszystkie dane o 3/4 sekundy szybciej (3,3 s vs. 4,11 s), gdy nie zastosuję formatowania wiersz po wierszu, ale wszystkie naraz. Problem, który próbuję przezwyciężyć, polega na tym, że nie każdy wiersz ma to samo formatowanie; istnieje jednak przewidywalny wzór. Dwa rzędy jednego formatowania i jeden wiersz o różnym formatowaniu. Czy istnieje sposób bez pętli na zastosowanie tych dwóch różnych formatów w jednym, co pozwoliłoby mi utrzymać przyrost wydajności, który otrzymuję (użytkownicy chcieliby zobaczyć odpowiedź poniżej 2 sekund, więc może to być duży zysk).

Obecnie używam następującego kodu (ustawienia aplikacji, takie jak aktualizacja ekranu, obliczenia i zdarzenia są wyłączone w tym czasie)

Private Sub BuildTerminalSummary(ByRef terminals, ByVal timeFrame)
    Dim terminal As clsTerminal
    Dim curSheet As Worksheet
    Dim breakLoop As Boolean
    Dim terminalCode As String
    Dim rowNumber As Long

    Set terminal = New clsTerminal
    Set curSheet = Sheets("Terminal Summary")

    rowNumber = 7

    'Remove all content, borders, and tint
    ClearPage curSheet, rowNumber

    For Each terminal In terminals         
        AddDetailData curSheet, terminal.InfoArray, rowNumber
        AddDetailData curSheet, terminal.PriorInfoArray, rowNumber + 1
        AddDiffPercentFormulas curSheet, terminal.DiffPercentInfoArray, rowNumber + 2

        rowNumber = rowNumber + 2

    Next terminal

    'Make sure the columns are wide enough to display the numbers
    curSheet.Cells.EntireColumn.AutoFit

End Sub

Private Sub AddDetailData(ByRef curSheet, ByRef data, ByVal rowNumber)
    With curSheet
        With .Cells(rowNumber, 3).Resize(1, 16)
            .value = data
            .Style = "Comma"
            .NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""??_);_(@_)"
        End With
        'This overides the formatting in the revenue columns with currency instead of comma style
        With .Cells(rowNumber, 5).Resize(1, 2)
            .Style = "Currency"
            .NumberFormat = "_($* #,##0_);_($* (#,##0);_($* ""-""??_);_(@_)"
        End With
        With .Cells(rowNumber, 13).Resize(1, 6)
            .Style = "Currency"
        End With
    End With

End Sub

Private Sub AddDiffPercentFormulas(ByRef curSheet, ByRef data, ByVal rowNumber)
    With curSheet.Cells(rowNumber, 3).Resize(1, 16)
        .value = data
        .NumberFormat = "0.00%"
    End With

End Sub

questionAnswers(3)

yourAnswerToTheQuestion