Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Avoiding Compile Error for Unsupported Methods
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 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Avoiding Compile Error for Unsupported Methods
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 ==================== "Kevin" wrote: 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 |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Avoiding Compile Error for Unsupported Methods
Put that line in its own sub and call it only if Val(Application.Version)=
12. -- Jim "Kevin" wrote in message ... |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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Avoiding hyperlink error | Excel Programming | |||
VBAProject name compile error, not defined at compile time | Excel Programming | |||
Avoiding the dreaded #div/0 error | Excel Worksheet Functions | |||
Unsupported methods for XL macro in IE | Excel Programming | |||
Escape On Error methods in Subs | Excel Programming |