Avoiding Compile Error for Unsupported Methods

K

Kevin

I have written some VBA code in an Excel 2003 workbook that also needs to be
accessible in Excel 2007, so the file format is 2003 (xls). Whenever I open
it in Compatibility Mode in 2007 and then try to save it the Compatibility
Checker pops up with warnings that I know will not cause problems for me. So,
I added the following line of code to suppress the Compatibility Checker:

ThisWorkbook.CheckCompatibility = False

This works great in Excel 2007, but I get a compile error when I open it in
2003 because the CheckCompatibility method is not supported in 2003.

My question is: Is there a way to somehow insulate this line of code so that
it is only compiled when the file is opened in 2007? Some sort of compiler
directive that conditionally compiles it based on the version? Or any other
ideas? :)

Thanks in advance for your help!

Kevin
 
K

Kevin

I figured it out and used the #Const directive a compiler constant that I
then used in a #If - Then -#Else loop to run the line of code only if it was
running in Excel 2007. For anyone else who may benefit from this, here's the
code:

If Application.Version = "12.0" Then
boolExcelVersion12 = True
Else
boolExcelVersion12 = False
End If

#Const constboolExcelVersion12 = boolExcelVersion12

#If constboolExcelVersion12 Then
ThisWorkbook.CheckCompatibility = False
#End If

Kevin

====================
 
J

Jim Rech

Put that line in its own sub and call it only if Val(Application.Version)>=
12.

--
Jim
|I have written some VBA code in an Excel 2003 workbook that also needs to
be
| accessible in Excel 2007, so the file format is 2003 (xls). Whenever I
open
| it in Compatibility Mode in 2007 and then try to save it the Compatibility
| Checker pops up with warnings that I know will not cause problems for me.
So,
| I added the following line of code to suppress the Compatibility Checker:
|
| ThisWorkbook.CheckCompatibility = False
|
| This works great in Excel 2007, but I get a compile error when I open it
in
| 2003 because the CheckCompatibility method is not supported in 2003.
|
| My question is: Is there a way to somehow insulate this line of code so
that
| it is only compiled when the file is opened in 2007? Some sort of compiler
| directive that conditionally compiles it based on the version? Or any
other
| ideas? :)
|
| Thanks in advance for your help!
|
| Kevin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top