运行以下简单代码时出现438运行时错误,突出显示错误的位置是斜体代码,但是我的工作表名称和标题更新正常。有没有一种方法可以解决错误,或者简单地通过错误而不会中断宏?
Sub RenameSheet()
ActiveSheet.Name = Range("B2").Value
ActiveSheet.CenterHeader = ActiveSheet.Name '<~~ error here
End Sub
答案 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