仅在某些计算机上填充 VBA ActiveX 组合框时出现错误 438
Error 438 when populating VBA ActiveX combobox only on some computers
我创建了一个工作簿,其中包含通过 worksheet_activate() 代码填充的 ActiveX 组合框控件:
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,但问题仍然存在。
我差点就要使用我的代码,然后是这个!提前致谢。
我终于确定了问题的原因。
再一次,它是由 Microsoft 安全更新引起的(不知何故安装在我同事的计算机上,而不是我的)。参考 http://support.microsoft.com/kb/3025036
在 运行 那个知识库文章的补丁之后,一切都再次起作用了。
我创建了一个工作簿,其中包含通过 worksheet_activate() 代码填充的 ActiveX 组合框控件:
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,但问题仍然存在。
我差点就要使用我的代码,然后是这个!提前致谢。
我终于确定了问题的原因。 再一次,它是由 Microsoft 安全更新引起的(不知何故安装在我同事的计算机上,而不是我的)。参考 http://support.microsoft.com/kb/3025036
在 运行 那个知识库文章的补丁之后,一切都再次起作用了。