title: In Delphi, what do I do about "no GetEnumerator present" error when using a for loop over Excel Interop Worksheets collection?
body: <p>I'm trying to write a Delphi program that will loop through each worksheet in an Excel file and format some cells. I'm receiving an error while trying to use the for-in loop over the Workbook.Worksheets collection, though. The error is specifically:</p>
  
  <blockquote>
    <p>[DCC Error] Office.pas(36): E2431
    for-in statement cannot operate on
    collection type 'Sheets' because
    'Sheets' does not contain a member for
    'GetEnumerator', or it is inaccessible</p>
  </blockquote>
  
  <p>The line of code this occurs for is:</p>
  
  <pre><code>for Worksheet in Workbook.Worksheets do
  </code></pre>
  
  <p>The definition of Worksheet and Workbook is as follows:</p>
  
  <pre><code>var ExcelApp: ExcelApplication;
  var Workbook: ExcelWorkbook;
  var Worksheet: ExcelWorksheet;
  </code></pre>
  
  <p>I'm porting this code to Delphi from C#, in which it works. Does anyone know why I'd be getting this GetEnumerator error? I'm using the Office 2007 Excel Interop file and Embarcadero® Delphi® 2010 Version 14.0.3593.25826.</p>