ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Two excel version conflict? (https://www.excelbanter.com/excel-programming/379746-re-two-excel-version-conflict.html)

feather

Two excel version conflict?
 
it's C# code, I am not sure if this is the right place...
please let me know if there're somewhere else I can put this question to...

"feather" wrote:

my program worked fine with excel 2002, but when my user installed an old
excel version 2000 (i.e. the user has 2002 and 2000 on his pc now), my
program throw exception when calling the open function...please help...

my code:

oExlApp = new Excel.Application();
oExlApp.Visible = false;
oExlWB = (Excel._Workbook) oExlApp.Workbooks.Open(strSrcFileName,
Missing.Value, true, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value , Missing.Value);


NickHK

Two excel version conflict?
 
From what I understand about C# (not much), all arguments must be included,
unlike VB/VBA where optional arguments can be omitted.
As the newer version has extra (optional) arguments compared to the older
version, these call will fail.
Maybe you need late binding and test the version of Excel to decide which
calls to make.

But it is generally advised to develop on the oldest system you intend
support.

NickHK

"feather" wrote in message
...
it's C# code, I am not sure if this is the right place...
please let me know if there're somewhere else I can put this question

to...

"feather" wrote:

my program worked fine with excel 2002, but when my user installed an

old
excel version 2000 (i.e. the user has 2002 and 2000 on his pc now), my
program throw exception when calling the open function...please help...

my code:

oExlApp = new Excel.Application();
oExlApp.Visible = false;
oExlWB = (Excel._Workbook) oExlApp.Workbooks.Open(strSrcFileName,
Missing.Value, true, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,

Missing.Value,
Missing.Value, Missing.Value, Missing.Value , Missing.Value);




feather

Two excel version conflict?
 
when I develop & deploy my program, the user have the same enviroment as me,
only excel 2002. After a while, he installed 2000 to open some perticular xls
file which have some function only available under 2000 (no idea what it
is...). Anyway, that's why I got this issue.

Yes I think late binding is a good idea, could you tell me how to do this in
C#?

Thanks a lot!

"NickHK" wrote:

From what I understand about C# (not much), all arguments must be included,
unlike VB/VBA where optional arguments can be omitted.
As the newer version has extra (optional) arguments compared to the older
version, these call will fail.
Maybe you need late binding and test the version of Excel to decide which
calls to make.

But it is generally advised to develop on the oldest system you intend
support.

NickHK

"feather" wrote in message
...
it's C# code, I am not sure if this is the right place...
please let me know if there're somewhere else I can put this question

to...

"feather" wrote:

my program worked fine with excel 2002, but when my user installed an

old
excel version 2000 (i.e. the user has 2002 and 2000 on his pc now), my
program throw exception when calling the open function...please help...

my code:

oExlApp = new Excel.Application();
oExlApp.Visible = false;
oExlWB = (Excel._Workbook) oExlApp.Workbooks.Open(strSrcFileName,
Missing.Value, true, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,

Missing.Value,
Missing.Value, Missing.Value, Missing.Value , Missing.Value);





NickHK

Two excel version conflict?
 
That's a question for a C# NG.
In VB/VBA, you do not set a reference and only use the generic Object
variable with CreateObject:

Dim XLApp as object
set xlapp=createobject("Excel.Application")
'etc

NickHK

"feather" wrote in message
...
when I develop & deploy my program, the user have the same enviroment as

me,
only excel 2002. After a while, he installed 2000 to open some perticular

xls
file which have some function only available under 2000 (no idea what it
is...). Anyway, that's why I got this issue.

Yes I think late binding is a good idea, could you tell me how to do this

in
C#?

Thanks a lot!

"NickHK" wrote:

From what I understand about C# (not much), all arguments must be

included,
unlike VB/VBA where optional arguments can be omitted.
As the newer version has extra (optional) arguments compared to the

older
version, these call will fail.
Maybe you need late binding and test the version of Excel to decide

which
calls to make.

But it is generally advised to develop on the oldest system you intend
support.

NickHK

"feather" wrote in message
...
it's C# code, I am not sure if this is the right place...
please let me know if there're somewhere else I can put this question

to...

"feather" wrote:

my program worked fine with excel 2002, but when my user installed

an
old
excel version 2000 (i.e. the user has 2002 and 2000 on his pc now),

my
program throw exception when calling the open function...please

help...

my code:

oExlApp = new Excel.Application();
oExlApp.Visible = false;
oExlWB = (Excel._Workbook) oExlApp.Workbooks.Open(strSrcFileName,
Missing.Value, true, Missing.Value, Missing.Value,

Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,

Missing.Value,
Missing.Value, Missing.Value, Missing.Value , Missing.Value);







Jon Peltier

Two excel version conflict?
 
I suspect the user erred in thinking he had to install 2000. There were
additions from 2000 to 2002, but I don't know of any lost functions.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
http://PeltierTech.com
_______


"feather" wrote in message
...
when I develop & deploy my program, the user have the same enviroment as
me,
only excel 2002. After a while, he installed 2000 to open some perticular
xls
file which have some function only available under 2000 (no idea what it
is...). Anyway, that's why I got this issue.

Yes I think late binding is a good idea, could you tell me how to do this
in
C#?

Thanks a lot!

"NickHK" wrote:

From what I understand about C# (not much), all arguments must be
included,
unlike VB/VBA where optional arguments can be omitted.
As the newer version has extra (optional) arguments compared to the older
version, these call will fail.
Maybe you need late binding and test the version of Excel to decide which
calls to make.

But it is generally advised to develop on the oldest system you intend
support.

NickHK

"feather" wrote in message
...
it's C# code, I am not sure if this is the right place...
please let me know if there're somewhere else I can put this question

to...

"feather" wrote:

my program worked fine with excel 2002, but when my user installed an

old
excel version 2000 (i.e. the user has 2002 and 2000 on his pc now),
my
program throw exception when calling the open function...please
help...

my code:

oExlApp = new Excel.Application();
oExlApp.Visible = false;
oExlWB = (Excel._Workbook) oExlApp.Workbooks.Open(strSrcFileName,
Missing.Value, true, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,

Missing.Value,
Missing.Value, Missing.Value, Missing.Value , Missing.Value);








All times are GMT +1. The time now is 03:36 AM.

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