title: Iterating Through a Class in Excel VBA
body: <p>I have created a class module for an entity called Terminal.  I have a method that populates this class by going through 175 seperate worksheets and pulling the correct data from specific cells.  This process is very quick (about 2 seconds), however when I try to write this data back out to a new worksheet, it is taking much longer (45 seconds).  It would seem that this process should be atleast as fast as populating the class since it never has to leave the worksheet, however, it is not.  Below is the process that I am using to write the data to the worksheet, am I overlooking something that is causing this to run so slowly?</p>
  
  <pre><code>Application.ScreenUpdating = False
   Dim rowNumber As Integer
   Dim colNumber As Integer
   Dim terminalCode As String
   Dim terminal As clsTerminal
  
   rowNumber = 7
   colNumber = 1
  
   For Each terminal In terminals
  
          'Add hyperlink to each terminal code
          Sheets("Terminal Summary").Hyperlinks.Add Anchor:=Cells(rowNumber, colNumber), Address:="", _
              SubAddress:=terminal.terminalCode + "!A1", TextToDisplay:=terminal.terminalCode
  
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 1).Value = "Current"
  
          'Current period
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 2).Value = terminal.iBShipments
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 3).Value = terminal.oBShipments
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 4).Value = terminal.iBNetRevenue
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 5).Value = terminal.oBNetRevenue
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 6).Value = terminal.iBWeight
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 7).Value = terminal.oBWeight
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 8).Value = terminal.iBMileage
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 9).Value = terminal.oBMileage
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 10).FormulaR1C1 = "=IFERROR(RC[-4]/RC[-8],0)"
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 11).FormulaR1C1 = "=IFERROR(RC[-4]/RC[-8],0)"
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 12).FormulaR1C1 = "=IFERROR(RC[-8]/RC[-10],0)"
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 13).FormulaR1C1 = "=IFERROR(RC[-8]/RC[-10],0)"
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 14).FormulaR1C1 = "=IFERROR(RC[-10]/(RC[-8] / 100),0)"
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 15).FormulaR1C1 = "=IFERROR(RC[-10]/(RC[-8] / 100),0)"
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 16).FormulaR1C1 = "=IFERROR(RC[-12]/RC[-8],0)"
          Sheets("Terminal Summary").Cells(rowNumber, colNumber + 17).FormulaR1C1 = "=IFERROR(RC[-12]/RC[-8],0)"
  
          rowNumber = rowNumber + 1
      Next terminal
  </code></pre>
  
  <p><strong>Edit</strong>
  I should have noted terminals is a collection of the terminal class</p>