使用 VBA 访问 activeX 控件时出现运行时错误“438”

Runtime error '438' issue accessing activeX controls with VBA

我一直在网上搜索,但似乎找不到我的问题的答案!

我在 Excel 2010 年创建了一个使用 ActiveX 控件(特别是文本框和组合框)的电子表格。

我遇到了这样一个问题:当我保存电子表格、关闭 Excel 并重新打开文件时,所有 ActiveX 控件都不想协作。我不断收到 运行 时间错误“438”无法获取 OLEObject class 的对象 属性。我已尝试通过多种方式访问​​ OLEObject:(见下文)

Sub ResetSheet()

   Sheets("CoverSheet").OLEObjects("TextBox1").Object.Value = "Date"
   Sheets("CoverSheet").OLEObjects(1).Object.Value = "Date"

End Sub

这两行都会抛出上面的 运行-time 错误.... 但是这样的事情没问题:

 Sheets("CoverSheet").OLEObjects(1).Delete

我到底错过了什么?!

P.S。每 Microsoft

Sheets("CoverSheet").OLEObjects("TextBox1").Object.Value = "Date"

应该有用..

您能否尝试将代码添加到 VBA 编辑器中的 sheet "CoverSheet"(而不是 VBA 项目),看看您是否 运行在任何一行中再次陷入这个问题:

TextBox1.Text = "Date"
TextBox1.Value = "Date"

如果您仍然运行遇到同样的问题,请查看此 post,看看那里的解决方案是否有帮助: