Как получить ссылку на активный лист в активной книге?
Обращаеясь к Excel.Application.ActiveSheet или WorkBook.ActiveSheet, вы получите ссылку на интерфейс IDispatch. Это происходит из-за того, что коллекция Excel.Application.Sheets может содержать объекты WorkSheet, Chart, Excel4MacroSheet (для поддержки Excel 4).
Delphi:
// получить ссылку на активный лист, ASheet: TExcelWorksheet
ASheet.ConnectTo(XL.ActiveSheet as _Worksheet);
// получить ссылку на второй лист активной книги
ASheet.ConnectTo(XL.ActiveWorkbook.Sheet[2] as _Worksheet);
C#:
Excel.Worksheet oSheet = (Excel.Worksheet) XL.ActiveSheet; // Excel.Worksheet oSheet = (Excel.Worksheet) XL.Sheets[1];
Определить тип листа можно, проверив свойство Worksheet.Type:
Delphi:
if ASheet.type_[lcid] = xlWorksheet then { это Worksheet };
C#:
if (oSheet.Type == Excel.XlSheetType.xlWorksheet) /* это Worksheet */ ;
ActiveWorkbook Property
ActiveSheet Property
Type Property