用于更高版本的Excel的Excel 2002 VBA编译错误代码
我试图在电子表格中使用以下代码,这些代码将用于各种版本的Excel:
Sheets("Graph").ChartObjects("Chart 1").Activate ActiveChart.ClearToMatchStyle
如果我包含这个代码是正常的,它不会在Excel 2002下编译,但在以后的版本中可以正常工作。 我不认为.ClearToMatchStyle命令在Excel 2002中可用,这是它下降的地方。
有没有一种方法可以使用上面的代码,但只有激活命令,如果一个版本的Excel比2002年后发现?
非常感谢您的帮助,
马丁
你没有太多的select,真的。
你得到的是晚期绑定的版本依赖的一切。
那是:
Sheets("Graph").ChartObjects("Chart 1").Activate dim LateBoundChart As Object set LateBoundChart = ActiveChart on error resume next LateBoundChart.ClearToMatchStyle on error goto 0
on error resume next
您可以:
- 跳转到更有意义的error handling程序。
- 首先检查Excel版本,使用
Application.Version
。
而为了避免dim whatever as Object
的单调乏味,你可以有一个函数:
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