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

时间:2018-07-12 21:31:13

标签: excel vba excel-vba runtime-error excel-2013

运行以下简单代码时出现438运行时错误,突出显示错误的位置是斜体代码,但是我的工作表名称和标题更新正常。有没有一种方法可以解决错误,或者简单地通过错误而不会中断宏?

Sub RenameSheet()

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

End Sub

1 个答案:

答案 0 :(得分:1)

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

def initialize() @api_key = ENV['SEAMLESS_GOV_API_KEY'] @signature = generate_signature # <= at this point, neither form_id nor timestamp are set. but api key is. @form_id = ENV['SEAMLESS_GOV_FORM_ID'] @timestamp = Time.now.to_i.to_s end ActiveSheet的属性,它返回一个Application,这意味着您对其进行的任何成员调用都将是后期绑定,即VBA运行时需要查询{ {1}}并在对象的vtable上找到该成员-换句话说,对于任何此类成员调用您都无法获得IntelliSense,并且任何拼写错误都会很容易地编译。

声明一个Object对象,而不是直接在IDispatch下工作:

Worksheet

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

ActiveSheet属性是Dim ws As Worksheet Set ws = ActiveSheet 对象的成员:

CenterHeader