RE: Maintaining Maximum Platform Compatibility



I can't thank you enough for your quick response! I am not using any pivot
tables in my workbook, so there is no issue there. The part that I'm worried
about is the VB code that I am using.

So I will want to use late binding? Because, early binding would
automatically update to newer versions of a referance and thus cause that
saved file to stop working on earlier versions, correct?

So this would solve compatibility issues:

Sub LateBinding()
Dim appExcel As Object

Set appExcel = CreateObject("Excel.Application")
appExcel.Visible = True
End Sub

When would I have LateBinding() exexute? Also, How do I remove Early
Binding references? I can't simply uncheck thier box... I recieve an error.
Im guessing this is done through code.

One last thing... I would like to use User Forms, do I need to reference a
library for this as well or is that taken care of in the above code?

Sorry about all of the questions! I'm so used to programming robots...
thier easy! Just compile the code with the libraries you need and voila,
working robot

Thanks again Jim for all your help!

"Jim Thomlinson" wrote:

There are two aspects to compatibility. One is that Excel has changed over
the years and new features have been added. This means that code writen for
the current version of Excel may not work on older versions. You are best off
to write to the lowest version of Excel possible. The one are that can cuase
difficulty is code for Pivot Tables as teh Pivot Table Engine changed in
xl2002 and the code is different for the different versions.

The other issue (that I thing you are alluding to) is the compatibility of
references. This gets into early or late binding. Early binding is Selecting
Tools -> References and binding a reference to your project at design time.
The other method is late binding where you create your reference to the
library at run time. Early binding makes the code run a tad faster and it
allows you to use the intellisence while coding (a very handy feature). Late
binding has the advantage of not being tied to a specific instance of a
reference. Check out these two examples...

Sub EarlyBinding()
'Must Reference Word Lilbrary (9.0, 10.1, 11.0, ...)
Dim appWord As Word.Application

Set appWord = New Word.Application
appWord.Visible = True
End Sub

Sub LateBinding()
Dim appWord As Object

Set appWord = CreateObject("Word.Application")
appWord.Visible = True
End Sub

If you can not guranatee which references an end user system will have then
late binding is great. Speed is not usually too big of an issue with late
binding. I find the loss of intellisence to be a bit of an issue. I will
normally reference the project to the library right up front and write my
code assuming early binding. When the code is up and running I will then
switch it to late binding (a little bit of rewrite but usually not too bad).
--
HTH...

Jim Thomlinson


"Bob the Kart Racing fool" wrote:

I am just learning about all the issues associated with maintaining
compatibility between different software years, discovered when I sent the
completed file to my boss for approval… low and behold, a reference error.
So now, trying desperately to gather my pride from the floor, I come to you
because this forum has helped me so much in the past two weeks.

I need to maintain compatibility of my excel 2003 document that I have
created. I need it to work on Office 2000 and up. I have read all the posts
that I can find about “binding” but, I still don’t understand how to use this
to automatically maintain my files compatibility. How is this code written
and implemented? If the file is saved, and opened again on an earlier
version of excel… will it still work?

I desperately need guidance…

Thank you for your help in advance!

~Josh

.


Loading