【发布时间】:2015-04-05 23:36:29
【问题描述】:
我创建了一个带有 ActiveX 组合框控件的工作簿,这些控件通过 worksheet_activate() 代码填充:
Private Sub Worksheet_Activate()
With ActiveSheet.cmboBox1
.Clear
.AddItem "Item 1"
.AddItem "Item 2"
.AddItem "etc..."
.Text = "Select... "
.Width = 222
.Height = 19
.Left = 0
.Top = 0
End With
End Sub
这在我的电脑上运行良好。但是,当我尝试在同事的计算机上打开电子表格时,他们会收到错误 438,并且调试会突出显示该行:
With ActiveSheet.cmboBox1
我比较了 Excel 版本,我们运行的版本完全相同。
我们有相同的 ActiveX 信任中心设置。 我创建了一个只有一个 ActiveX 组合框的空白工作表,并且发生了同样的事情。
我尝试直接指定工作表来代替使用 ActiveSheet,但问题仍然存在。
我非常接近使用我的代码,然后是这个!提前致谢。
【问题讨论】:
-
简单的诊断是活动工作表没有名为“cmboBox1”的成员。当然,他们通常不会,只需添加一张表格就足以轰炸代码。拼写错误也是一个简单的错误,因为默认名称是“ComboBox1”。
-
感谢您的建议。我看了看,但这些工作表在我的机器上激活并正常工作。只有当我移动到另一台计算机并打开相同的工作簿时才会发生此错误。
-
你为什么不使用工作表的名称而不是 pf
ActiveSheet? -
谢谢保罗。正如我在原始帖子中提到的那样,直接引用工作表具有相同的效果。例如,使用
With Sheets("Sheet1").cmboBox1在我同事的计算机上会产生同样的问题。
标签: excel vba combobox activex