使用 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,看看那里的解决方案是否有帮助:
我一直在网上搜索,但似乎找不到我的问题的答案!
我在 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,看看那里的解决方案是否有帮助: