这个宏里有Forms,在开发状态下,鼠标点击和准备编辑该Form时,VB也报错(System Error & H80040111 (-2147221231)),根本就不看到这个Form上的控件。注:这块代码是别人写的,我是维护的。谢谢。

解决方案 »

  1.   

    错误提示的内容是什么?
    你写个“错误代号”,鬼才知道这是什么错误!!!
    我在Excel 2007的VBE中查了下,找不到&H80040111代表什么错误。
      

  2.   

    不知道是不是缺少了某个ActiveX DLL …………也有可能是权限原因造成,你“以管理员身份运行”启动Excel,再打开那个工作簿试试。
      

  3.   

    谢谢你,我这个project本来是2003下开发的,我把它放在2007下修改和开发,是不是首先要把文件从.xls转换为.xlsm格式?目前,我没有转换,通过按钮运行宏,就会报上面的错误,我到代码里,想看看form上有什么东西,点击form也会报同样的错误,是和控件有关系吗?还是和引用的库有关系?非常谢谢。
      

  4.   

    我在自己的电脑上装了EXCEL2003,也有错误,提示Could not load an object because it is not available on this machine.查资料说是C:\windows\system32\mscomctl.ocx版本低,我电脑上的版本已经是6.1.98.46了,还低吗?如果是版本低,哪里有高版本的?非常感谢。
      

  5.   

    操作系统是XP SP3,在一个窗体上有个控件名字是progbar,好像就是运行它时出了问题。我打开VBA编辑器,插入一个窗体后,想添加一个这样的控件,却找不到,无法添加。
      

  6.   

    可能是 ProgressBar,但是有5.0(COMCTL32.ocx)、6.0(MSCOMCTL.ocx)两个版本。试试能不能把窗体导出,保存为 .frm 文件。
    然后用文本编辑器打开,看开头的 Object = 以及 Begin <ProgID> progbar。
      

  7.   

    这个问题是MSCOMCTL.ocx的问题吗?我用的是6.1.98.46版本,感觉就是windows form有问题导致的。
      

  8.   

    别人的电脑是office 365版本,MSCOMCTL.ocx是6.1.98.46版本,运行都很正常的。
      

  9.   

    如果是MSCOMCTL.ocx的问题
    你到老机器上找到这个文件来
    然后放到新机器上注册一下看看
      

  10.   

    在64位Windows下:
    64位exe和dll在目录c:\windows\system32目录下;
    32位exe和dll在目录c:\windows\syswow64目录下;
    所以要注意:
        在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
        且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll