ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Copy a worksheet throws "Exception from HRESULT: 0x800A03EC." (https://www.excelbanter.com/excel-programming/370407-copy-worksheet-throws-exception-hresult-0x800a03ec.html)

i3tech

Copy a worksheet throws "Exception from HRESULT: 0x800A03EC."
 
Hi,
While iam trying to copy a worksheet from one file to another file in C#,
VS.NET 2003 i get error message saying: "Exception from HRESULT:
0x800A03EC."

The Exact Code i used is:
Excel.Application xlApp1 = new Excel.ApplicationClass();
Excel.Application xlApp2 = new Excel.ApplicationClass();
object missing = Type.Missing;

xlApp1.Workbooks.Open(System.Windows.Forms.Applica tion.StartupPath +
@"\Reports.xls" ,
missing , missing, missing, missing, missing,missing, missing, missing,
missing, missing, missing, missing, missing, missing);
xlApp2.Workbooks.Open(System.Windows.Forms.Applica tion.StartupPath +
@"\Template.xls" ,
missing , missing, missing, missing, missing,missing, missing, missing,
missing, missing, missing, missing, missing, missing);

Excel.Workbook xlSrcBook;
Excel.Workbook xlDestBook;

xlSrcBook = xlApp2.ActiveWorkbook as Workbook;
xlDestBook = xlApp1.ActiveWorkbook as Workbook;

try
{
(xlSrcBook.Sheets[2] as
Worksheet).Copy(missing,xlDestBook.Sheets[xlDestBook.Sheets.Count]);
xlApp2.Visible = true;
}
catch(Exception ex)
{
MessageBox.Show(this,ex.Message);
}
finally
{
xlSrcBook.Saved = true;
xlDestBook.Saved = true;
xlSrcBook.Close(missing,missing,missing);
xlDestBook.Close(missing,missing,missing);
xlApp1.Quit();
xlApp1 = null;
xlApp2.Quit();
xlApp2 = null;
}

Can someone please help me in finding out the mistake ?

NickHK

Copy a worksheet throws "Exception from HRESULT: 0x800A03EC."
 
I've never tried it in VB/VBA, but I'd be surprised if you can copy/move
worksheets between instances of Excel.
Open both workbook in the same instance and you should be OK.

NickHK

"i3tech" wrote in message
...
Hi,
While iam trying to copy a worksheet from one file to another file in

C#,
VS.NET 2003 i get error message saying: "Exception from HRESULT:
0x800A03EC."

The Exact Code i used is:
Excel.Application xlApp1 = new Excel.ApplicationClass();
Excel.Application xlApp2 = new Excel.ApplicationClass();
object missing = Type.Missing;

xlApp1.Workbooks.Open(System.Windows.Forms.Applica tion.StartupPath +
@"\Reports.xls" ,
missing , missing, missing, missing, missing,missing, missing, missing,
missing, missing, missing, missing, missing, missing);
xlApp2.Workbooks.Open(System.Windows.Forms.Applica tion.StartupPath +
@"\Template.xls" ,
missing , missing, missing, missing, missing,missing, missing, missing,
missing, missing, missing, missing, missing, missing);

Excel.Workbook xlSrcBook;
Excel.Workbook xlDestBook;

xlSrcBook = xlApp2.ActiveWorkbook as Workbook;
xlDestBook = xlApp1.ActiveWorkbook as Workbook;

try
{
(xlSrcBook.Sheets[2] as
Worksheet).Copy(missing,xlDestBook.Sheets[xlDestBook.Sheets.Count]);
xlApp2.Visible = true;
}
catch(Exception ex)
{
MessageBox.Show(this,ex.Message);
}
finally
{
xlSrcBook.Saved = true;
xlDestBook.Saved = true;
xlSrcBook.Close(missing,missing,missing);
xlDestBook.Close(missing,missing,missing);
xlApp1.Quit();
xlApp1 = null;
xlApp2.Quit();
xlApp2 = null;
}

Can someone please help me in finding out the mistake ?




i3tech

Copy a worksheet throws "Exception from HRESULT: 0x800A03EC."
 
Can you explain it please ?. Iam not getting it.
if you open in same instance then how will i get two different workbook
and their worksheets ?. ActiveWorkbook will give me only one workbook to
copy ?

[email protected]

Copy a worksheet throws "Exception from HRESULT: 0x800A03EC."
 
As Nick wrote you only require one instance of Excel. To get around
your activeworkbook problem, set the reference when you open the
workbook then open the new one: IE

appxl.workbooks.open ("Filename")
Book1 = Activeworkbook.name
appxl.workbooks.open ("Filename2")
Book2 = Activeworkbook.name

This should then reference the correct books. You can then use
appxl.Windows(Book1).activate to move back to workbook one etc.

James

i3tech wrote:

Can you explain it please ?. Iam not getting it.
if you open in same instance then how will i get two different workbook
and their worksheets ?. ActiveWorkbook will give me only one workbook to
copy ?



i3tech

Copy a worksheet throws "Exception from HRESULT: 0x800A03EC."
 
Thank a lot Nick & James. It works great !

" wrote:

As Nick wrote you only require one instance of Excel. To get around
your activeworkbook problem, set the reference when you open the
workbook then open the new one: IE

appxl.workbooks.open ("Filename")
Book1 = Activeworkbook.name
appxl.workbooks.open ("Filename2")
Book2 = Activeworkbook.name

This should then reference the correct books. You can then use
appxl.Windows(Book1).activate to move back to workbook one etc.

James

i3tech wrote:

Can you explain it please ?. Iam not getting it.
if you open in same instance then how will i get two different workbook
and their worksheets ?. ActiveWorkbook will give me only one workbook to
copy ?





All times are GMT +1. The time now is 11:17 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com