Excel 2002 VBA编译错误,代码适用于更高版本的Excel
我尝试在电子表格中使用以下代码,该电子表格将在各种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时激
Sheets("Graph").ChartObjects("Chart 1").Activate
ActiveChart.ClearToMatchStyle
如果我像平常一样包含这段代码,它将不会在Excel2002下编译,但在以后的版本中可以正常工作。我认为.ClearToMatchStyle命令在Excel2002中不可用,这就是它的缺点
是否有一种方法可以使用上述代码,但仅在找到2002年以后版本的Excel时激活这些命令
非常感谢您的帮助
马丁:你真的没有太多选择 对于所有依赖于版本的内容,您所得到的是延迟绑定。
即: 您可以:
- 跳转到更有意义的错误处理程序
- 首先使用
检查Excel版本Application.version
对象模糊,您可以使用以下功能:
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