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

我一直在寻找互联网,似乎无法find我的问题的答案!

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

我遇到了一个问题,当我保存电子表格,closuresExcel并重新打开文件时,所有的ActiveX控件都不想合作。 我不断收到运行时错误“438”无法获得OLEObject类的对象属性。 我试图通过多种方式访问​​OLEObject:(参见下文)

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

这两行都会抛出上面的运行时错误….但是像这样的东西没有问题:

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

我错过了什么?

每个微软的 PS:

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

应该工作..

您可以尝试将代码添加到VBA编辑器(而不是VBAProject)中的工作表“CoverSheet”,并查看是否在任何行中遇到此问题:

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

如果你仍然遇到同样的问题,看看这个post,看看是否有帮助解决scheme: 无法获得OLEObject类的对象属性 – Excel Interop