Vba Excel宏打开时出现运行时错误32809

Vba Excel宏打开时出现运行时错误32809,vba,excel,Vba,Excel,我在Excel 2013上创建了一个启用Excel宏的工作簿。工作簿的宏在我的计算机上运行良好,但在某些其他计算机上无法运行,即使它们使用的是Excel 2013。适用于7/10计算机我在Windows7和Windows8上都试过了。当我将其发送到某个人的计算机而该计算机不工作时,会发生以下情况: 它们打开工作簿,一旦用户单击“启用内容”,工作簿就会出错“运行时错误‘32809’:应用程序定义的错误或对象定义的错误” 调试显示它卡在下面代码的第二行: private sub workbook o

我在Excel 2013上创建了一个启用Excel宏的工作簿。工作簿的宏在我的计算机上运行良好,但在某些其他计算机上无法运行,即使它们使用的是Excel 2013。适用于7/10计算机我在Windows7和Windows8上都试过了。当我将其发送到某个人的计算机而该计算机不工作时,会发生以下情况:

它们打开工作簿,一旦用户单击“启用内容”,工作簿就会出错“运行时错误‘32809’:应用程序定义的错误或对象定义的错误”

调试显示它卡在下面代码的第二行:

private sub workbook open()
Worksheets(1).OLEObjects("ComboBox21").ListFillRange = "impacts"
**Worksheets(2).OLEObjects("ComboBox21").ListFillRange = "yesnoo"** This line errors
如果我注释掉这两行,工作簿将打开,但工作表(2)上的combobox21被重命名为combobox22,并且不起作用,但工作表(1)上的第一个combobox加载并正常工作

我想补充一点,如果我把这些行注释掉的话

Worksheets(1).OLEObjects("ComboBox21").ListFillRange = "impacts"
Worksheets(2).OLEObjects("ComboBox21").ListFillRange = "yesnoo" 

我现在得到一个错误,即“无法退出设计模式,因为无法创建控件“dattimepicker21”

我发现并修复了这个问题,没有工作的机器缺少MSCOMCT2.OCX


您是否尝试重命名第二张工作表上的“问题”组合框?最新的Excel版本在打开时只有一张工作表(不像早期版本的3张)因此,您将在引用不存在的sheet@bsapaka假设工作簿已经有两张工作表…无论如何,这会引发下标超出范围的错误,而不是32809错误:)不幸的是,Excel通常是不可预测的。尝试从头开始重新创建工作簿(尽管很难)关键是要找出是否存在真正的问题,或者文件是否在某个过程中被损坏。