运行 时间错误 438 但宏工作正常,我该如何摆脱或克服错误?

Run Time Error 438 but macro works fine, how do I get rid or move past error?

我收到错误 438 运行 时间错误 运行 下面的简单代码,斜体代码是突出显示错误的地方,但是我的 sheet 名字和 header 更新好了。有没有办法可以解决错误或简单地跳过错误而不中断宏?

Sub RenameSheet()

ActiveSheet.Name = Range("B2").Value
ActiveSheet.CenterHeader = ActiveSheet.Name '<~~ error here

End Sub

错误 438 表示您正在调用一个不存在的成员。

ActiveSheetApplication 的 属性,returns 是 Object,这意味着您针对它进行的任何成员调用都会延迟-bound,即 VBA 运行时需要查询 IDispatch 并在对象的 vtable 上定位成员 - 换句话说,您无法为任何此类成员调用获得 IntelliSense,并且任何拼写错误都会愉快地编译。

声明一个 Worksheet 对象而不是直接关闭 ActiveSheet:

Dim ws As Worksheet
Set ws = ActiveSheet

然后您将获得针对它调用的所有内容的编译时验证,并且 IntelliSense 会指导您完成成员调用。

CenterHeader 属性 是 PageSetup 对象的成员:

ws.PageSetup.CenterHeader = ws.Name