Excel 2002 VBA编译错误,代码适用于更高版本的Excel

Excel 2002 VBA编译错误,代码适用于更高版本的Excel,excel,vba,compilation,version,Excel,Vba,Compilation,Version,我尝试在电子表格中使用以下代码,该电子表格将在各种Excel版本中使用:- Sheets("Graph").ChartObjects("Chart 1").Activate ActiveChart.ClearToMatchStyle 如果我像平常一样包含这段代码,它将不会在Excel2002下编译,但在以后的版本中可以正常工作。我认为.ClearToMatchStyle命令在Excel2002中不可用,这就是它的缺点 是否有一种方法可以使用上述代码,但仅在找到2002年以后版本的Excel时激

我尝试在电子表格中使用以下代码,该电子表格将在各种Excel版本中使用:-

Sheets("Graph").ChartObjects("Chart 1").Activate
ActiveChart.ClearToMatchStyle
如果我像平常一样包含这段代码,它将不会在Excel2002下编译,但在以后的版本中可以正常工作。我认为.ClearToMatchStyle命令在Excel2002中不可用,这就是它的缺点

是否有一种方法可以使用上述代码,但仅在找到2002年以后版本的Excel时激活这些命令

非常感谢您的帮助


马丁:你真的没有太多选择

对于所有依赖于版本的内容,您所得到的是延迟绑定。
即:

您可以:

  • 跳转到更有意义的错误处理程序
  • 首先使用
    Application.version
    检查Excel版本
为了避免繁琐的
对象模糊,您可以使用以下功能:

public function LateBound(byval o as object) as Object
  set LateBound = o
end function
然后:

Sheets("Graph").ChartObjects("Chart 1").Activate

on error resume next
LateBound(ActiveChart).ClearToMatchStyle
on error goto 0

知道这一点非常有用,非常感谢你在这个问题上的帮助。感谢你提供的额外信息,并花时间思考事情的额外功能方面,我从这一回答中学到了很多。非常感谢。
Sheets("Graph").ChartObjects("Chart 1").Activate

on error resume next
LateBound(ActiveChart).ClearToMatchStyle
on error goto 0