Copy Excel Worksheet

laa

Member
I am having a problem interfaced with Excel. I'm trying to open a workbook, copy the first worksheet of the workbook and paste that worksheet into a new empty workbook. Unfortunately, I am getting two new workbooks.

Code:
DEFINE VARIABLE gchExcelApp AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE gchWorkbook AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE gchSheet	AS COM-HANDLE NO-UNDO.
 
CREATE "Excel.Application" gchExcelApp.
 
ASSIGN
gchExcelApp:SheetsInNewWorkbook = 1
gchWorkbook					 = gchExcelApp:Workbooks:Add().
 
DEFINE VARIABLE gchWorkbookMstr AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE gchSheetMstr	AS COM-HANDLE NO-UNDO.
 
gchWorkbookMstr = gchExcelApp:Workbooks:Open("Template.xls").
gchSheetMstr = gchWorkbookMstr:sheets(1).
gchSheetMstr:Copy(gchSheet).
gchWorkbookMstr:Close.
gchSheet = gchWorkbook:sheets(1).
 
RELEASE OBJECT gchSheetMstr	NO-ERROR. 
RELEASE OBJECT gchWorkbookMstr NO-ERROR.
Once I have the copy of the worksheet I try to update it. The problem is that the other new workbook is the one that gets updated, not the one with the copy of the original worksheet.

Can anyone see what I am doing wrong here?

Thank you for your assistance.

Anne.
 
This code run, then do what you want with you're tow excel doc open :




DEFINE VARIABLE chExcelApplicationori AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE chExcelApplicationnew AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE chWorkbookori AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE chWorksheetori AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE chWorkbooknew AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE chWorksheetnew AS COM-HANDLE NO-UNDO.


CREATE "Excel.Application" chExcelApplicationori NO-ERROR.
IF ERROR-STATUS:ERROR THEN DO:
MESSAGE "Excel n'est pas disponible".
RETURN.
END.


chWorkbookori = chExcelApplicationori:Workbooks:Open("C:\Template.xls").
chWorkSheetori = chExcelApplicationori:Sheets:Item(1).
chExcelApplicationori:Cells():SELECT().
chExcelApplicationori:SELECTION():COPY().
CREATE "Excel.Application" chExcelApplicationnew NO-ERROR.
chWorkbooknew = chExcelApplicationnew:Workbooks:Add().
chWorkSheetnew = chExcelApplicationnew:Sheets:Item(1).
chExcelApplicationnew:Cells():SELECT().
chExcelApplicationnew:ActiveSheet:PASTE().

chExcelApplicationori:VISIBLE = TRUE.
chExcelApplicationnew:VISIBLE = TRUE.






RELEASE OBJECT chExcelApplicationori NO-ERROR.
RELEASE OBJECT chExcelApplicationnew NO-ERROR.
RELEASE OBJECT chWorkbookori NO-ERROR.
RELEASE OBJECT chWorksheetori NO-ERROR.
RELEASE OBJECT chWorkbooknew NO-ERROR.
RELEASE OBJECT chWorksheetnew NO-ERROR.


Hope i'ts help you
 
Back
Top