Bin für jeden Tipp dankbar, wie man grundsätzlich an dieses Problem herangehen sollte, um die Dateien sauber zu trennen.
Switche zwischen den gleichzeitig geöffneten Dateien (Workbooks) zu dem jeweils darin benötigten Arbeitsblatt (Worksheet) wie folgt:
Code:
Procedure ActivateWorkSheet(BookIndex, SheetIndex: Integer);
begin
fExcel.WorkBook [BookIndex].Activate;
fExcel.WorkSheets [SheetIndex].Activate;
end;
und bearbeite das dadurch jeweils gerade aktivierte Arbeitsblatt.
wobei:
eröffnet durch:
Code:
function GetOrCreateExcelObject: IDispatch;
var
ClassName: String;
ClassID: TGUID;
Unknown: IUnknown;
begin
ClassName:='Excel.Application';
ClassID := ProgIDToClassID(ClassName);
if Succeeded(GetActiveObject(ClassID, nil, Unknown)) then
OleCheck(Unknown.QueryInterface(IDispatch, Result))
else
Result := CreateOleObject(ClassName);
end;
Benötigt die Units
ActiveX, ComObj und Variants.