Excel/ActiveX: How to move a worksheet to another workbook?

davjoh

New Member
I am having an issue with the syntax when trying to move a worksheet from book2.xls to book1.xls...progress doesn't like the 'move before' statement.

/* VB CODE RECORDED FROM MACRO -
* Workbooks.Open Filename:="C:\Book1.xls"
* Workbooks.Open Filename:="C:\Book2.xls"
* Sheets("Sheet1").Select
* Sheets("Sheet1").Move Before:=Workbooks("Book1.xls").Sheets(1)
* */

/* MY PROGRESS CODE */
def var excel as com-handle.
def var workbook as com-handle.
def var worksheet as com-handle.
create "excel.application" excel.
excel:visible = true.
excel:displayalerts = false.
excel:Workbooks:Open("C:\Book1.xls").
excel:Workbooks:Open("C:\Book2.xls").
excel:Sheets("Sheet1"):Select().
/* WORKS UP TO NEXT LINE */
excel:workbooks:Move Before:=Workbooks("Book1.xls"):Sheets(1).
/* release object workbook.*/
release object excel.
 
Hi, davjoh.

Try this.

DEFINE VARIABLE chLibro AS COM-HANDLE.
DEFINE VARIABLE chLibroNew AS COM-HANDLE.
DEFINE VARIABLE chHoja AS COM-HANDLE.
DEFINE VARIABLE chHojaNew AS COM-HANDLE.

chLibro = excel:Workbooks:Open("C:\Book1.xls") no-error.
chHoja = excel:Sheets:Item(1) no-error.

chLibroNew = excel:Workbooks:Open("C:\Book2.xls") no-error.
chHojaNew = excel:Sheets:Item(1) no-error.

/* copy sheet 1 from Book1.xls AFTER sheet 1 from Book2.xls */
chHoja:COPY(,chHojaNew) NO-ERROR.

or

/* copy sheet 1 from Book1.xls BEFORE sheet 1 from Book2.xls */
chHoja:COPY(chHojaNew,) NO-ERROR.
 
Top