用于更高版本的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