Vba Visual Basic错误32809:解决方案不起作用

Vba Visual Basic错误32809:解决方案不起作用,vba,excel,excel-2010,Vba,Excel,Excel 2010,我正在处理一个带有许多ActiveX控件的大量宏Excel文件。文件的所有功能在我的电脑和其他电脑上都能正常工作,但当Auto_Open宏试图在其他电脑上激活工作表时,我遇到了错误32809 我知道这个问题已经在很多不同的论坛上发布过很多次了,但是我发现对其他人有效的解决方案中没有一个对我有效。我尝试了以下所有可能的解决方案: 从Temp\Excel8.0和Temp\VBA中删除所有*.exd文件 禁用所有ActiveX控件 在电脑上打开无法工作的文件并使用其他名称保存 稍微修改代码,重新编译

我正在处理一个带有许多ActiveX控件的大量宏Excel文件。文件的所有功能在我的电脑和其他电脑上都能正常工作,但当Auto_Open宏试图在其他电脑上激活工作表时,我遇到了错误32809

我知道这个问题已经在很多不同的论坛上发布过很多次了,但是我发现对其他人有效的解决方案中没有一个对我有效。我尝试了以下所有可能的解决方案:

  • 从Temp\Excel8.0和Temp\VBA中删除所有*.exd文件
  • 禁用所有ActiveX控件
  • 在电脑上打开无法工作的文件并使用其他名称保存
  • 稍微修改代码,重新编译并保存
  • 删除所有ActiveX控件并在无法工作的PC上重新创建它们
阻止32809错误发生的唯一一件事是删除所有ActiveX控件,但是如果我在PC上保存现在运行的文件,并尝试在不起作用的文件上打开它,错误就会回来


虽然删除所有控件确实会停止错误,但当我更新文件时,必须在不同的PC上重新创建所有控件是非常不方便的。我愿意接受任何可能有助于解决这个极其令人沮丧的问题的建议。

在保存任何更改之前,我删除了所有工作表中的所有ActiveX控件,并编写了一个例程,在打开文件时运行,以重新创建所有必要的控件,并在第一次使用这些控件重新保存文件在任何给定的PC上打开


在所有例程完成之前,创建控件不允许调试,因此我使用了
Application.OnTime
命令,而不是简单地调用下一个例程来解决这个问题

在保存任何更改之前,我删除了所有工作表中的所有ActiveX控件,并编写了一个例程,在打开文件时运行,以重新创建所有必要的控件,并在任何给定PC上首次打开文件时使用这些控件重新保存文件


在所有例程完成之前,创建控件不允许调试,因此我使用了
Application.OnTime
命令,而不是简单地调用下一个例程来解决这个问题

希望这能有所帮助。我已经处理著名的运行时错误32809有一段时间了。在VBA中,如果未定义某个对象,则当Excel VBA运行时,将提示运行时错误32809。但是现在,更多关于此运行时错误的案例不是由“未定义对象…”引起的,而是由Microsoft安全修补程序问题引起的。该修补程序使VBA ActiveX控件无法识别,因此VBA将这些有效的ActiveX控件视为未定义的对象。为了解决这个问题,微软发布了新的补丁来修复早期的问题。 如果您确保现有VBA没有“已定义对象”或它正常工作,则可以升级Microsoft修补程序。Excel 2010的最新版本应为14.0.7177.5000或更高版本


建议:如果产品由多种用户使用,请不要在VBA中包含ActiveX控件。这会导致无休止的问题。任何windows更新都可能影响VBA。

希望这能有所帮助。我已经处理著名的运行时错误32809有一段时间了。在VBA中,如果未定义某个对象,则当Excel VBA运行时,将提示运行时错误32809。但是现在,更多关于此运行时错误的案例不是由“未定义对象…”引起的,而是由Microsoft安全修补程序问题引起的。该修补程序使VBA ActiveX控件无法识别,因此VBA将这些有效的ActiveX控件视为未定义的对象。为了解决这个问题,微软发布了新的补丁来修复早期的问题。 如果您确保现有VBA没有“已定义对象”或它正常工作,则可以升级Microsoft修补程序。Excel 2010的最新版本应为14.0.7177.5000或更高版本


建议:如果产品由多种用户使用,请不要在VBA中包含ActiveX控件。这会导致无休止的问题。任何windows更新都可能影响VBA。

是否安装了所有Office更新。这有时会奏效。我有一个程序不断崩溃,直到我意识到它只是在没有安装Office更新的计算机上崩溃,所以。。。另一个选项是另存为XLSX文件,这样所有宏都被剥离,然后将模块从旧文件复制到新的XLSX文件并另存为XLSMCreate custom userform以替换ActiveX…Abe-我没有安装更新,因为这些是公司的PC,我必须通过我们的IT部门在所有50多台受影响的计算机上进行安装。XLSX方法是否必须在每台计算机上分别执行?Marciej-我简要考虑了该方法,但这会给工具带来相当大的不便,我宁愿不处理投诉。您是否安装了所有Office更新。这有时会奏效。我有一个程序不断崩溃,直到我意识到它只是在没有安装Office更新的计算机上崩溃,所以。。。另一个选项是另存为XLSX文件,这样所有宏都被剥离,然后将模块从旧文件复制到新的XLSX文件并另存为XLSMCreate custom userform以替换ActiveX…Abe-我没有安装更新,因为这些是公司的PC,我必须通过我们的IT部门在所有50多台受影响的计算机上进行安装。XLSX方法是否必须在每台计算机上分别执行?Marciej-我简要考虑了该方法,但这会给工具带来相当大的不便,我宁愿不处理投诉。您是否安装了所有Office更新。这有时会奏效。我有一个程序不断崩溃,直到我意识到它只是在没有安装Office更新的计算机上崩溃,所以。。。另一个选项是另存为XLSX