假设您有一张幻灯片,上面有一张图表,并且您运行以下代码(在 2007 年以后的 Office 版本中):
Dim pptWorkbook As Object
Dim result As Object
Set pptWorkbook = ActivePresentation.slides(1).Shapes(1).Chart.ChartData.Workbook
Set result = pptWorkbook.ContentTypeProperties
你会产生一个错误:
应用程序定义或对象定义的错误
我相信这是因为“智能标签在 Office 2010 中已弃用。”(来源),通常为了避免此类问题引发错误并退出 VBA,您可以采用两种不同方法之一:
//Method 1
If OfficeVersion <= 2007
Set result = pptWorkbook.ContentTypeProperties
//Method 2
On Error Resume Next // or GOTO error handler
Set result = pptWorkbook.ContentTypeProperties
方法一要求您知道属性会导致错误的具体原因,这在这种情况下很容易,但对于其他属性可能就不那么容易了。方法二要求您使用某种形式的错误处理来处理错误事实上,我对大多数其他 Microsoft 语言的理解通常是不鼓励的(例如,另一个示例)。这是VBA中的标准做法吗?
在 VBA 中,是否有任何其他方法可以确定对象的属性在调用该属性之前是否会引发错误,并且不知道该调用属性的细节?