Vba UserForm选项按钮在运行时切换后控制Excel崩溃

Vba UserForm选项按钮在运行时切换后控制Excel崩溃,vba,excel,Vba,Excel,我在excel中创建的用户窗体上的单选选项按钮有问题。加载UserForm时,默认为OptionButton1。如果我切换到OptionButton2,然后切换回OptionButton1,excel将无响应,并在关闭表单时崩溃。如果我只是切换到OptionButton2并关闭表单,或者根本不切换它们,一切都会很好。只有在给定运行时多次切换时才会发生这种情况。此外,选项按钮位于userform的一个框架上,如果这有什么不同的话 我已经注释掉了所有由附加到控件的事件触发的代码,但它仍然会发生。此外

我在excel中创建的用户窗体上的单选选项按钮有问题。加载UserForm时,默认为OptionButton1。如果我切换到OptionButton2,然后切换回OptionButton1,excel将无响应,并在关闭表单时崩溃。如果我只是切换到OptionButton2并关闭表单,或者根本不切换它们,一切都会很好。只有在给定运行时多次切换时才会发生这种情况。此外,选项按钮位于userform的一个框架上,如果这有什么不同的话

我已经注释掉了所有由附加到控件的事件触发的代码,但它仍然会发生。此外,在我只切换一次选项的情况下,代码工作得非常好。只需将选项更改为2并返回1,而不执行任何其他代码,它就会崩溃。我在表单上有另一个选项按钮组,我对该组没有任何问题。我可以随意切换它们

我无法共享我的实际工作簿,在示例工作簿中重新创建问题时失败。我不确定我还能提供什么有用的东西。如果有人根据我对问题的描述提出任何建议,我们将不胜感激。我已经没有主意了

我尝试过的事情:

  • 删除与控件关联的所有代码
  • 更改和删除选项按钮集的组名
  • 删除选项按钮并重新制作它们
  • 更改选项按钮的名称
  • 复制和粘贴现有工作选项按钮并重命名它们
编辑:我可以在原始工作簿上另存为,并删除除工作和损坏的选项控件之外的所有内容。下面是一个指向示例书的链接,它是我实际工作簿的基本框架:


即使一切都过去了,问题仍然存在。如果打开userform,可以在“选项A”和“选项B”按钮之间切换,但如果尝试在“选项1”和“选项2”之间切换,则关闭表单时excel将崩溃。

您的用户表单和/或控件已损坏。按照Committern的建议,尝试以下方法,而不是完全导出和娱乐:

1.Delete your faulty user form. in this case `Test`.    
2.Save and close Excel.    
3. Go to C:\Users\<<yourusername>>\AppData\Local\Temp\VBE    
4. Here delete all the exd files.
5. Re-open workbook add new form, name it `Test` and all option buttons.
1.删除错误的用户表单。在本例中为“Test”。
2.保存并关闭Excel。
3.转到C:\Users\\AppData\Local\Temp\VBE
4.这里删除所有exd文件。
5.重新打开工作簿添加新表单,将其命名为“测试”和所有选项按钮。
一切正常

请记住,如果您试图添加一个新的用户表单,并在不保存文件的情况下将其重命名为旧的
Test
,则会出现错误


您的用户表单和/或控件已损坏。按照Committern的建议,尝试以下方法,而不是完全导出和娱乐:

1.Delete your faulty user form. in this case `Test`.    
2.Save and close Excel.    
3. Go to C:\Users\<<yourusername>>\AppData\Local\Temp\VBE    
4. Here delete all the exd files.
5. Re-open workbook add new form, name it `Test` and all option buttons.
1.删除错误的用户表单。在本例中为“Test”。
2.保存并关闭Excel。
3.转到C:\Users\\AppData\Local\Temp\VBE
4.这里删除所有exd文件。
5.重新打开工作簿添加新表单,将其命名为“测试”和所有选项按钮。
一切正常

请记住,如果您试图添加一个新的用户表单,并在不保存文件的情况下将其重命名为旧的
Test
,则会出现错误


似乎很奇怪。如果在按钮中没有调用任何基于excel的内容,只需切换这些按钮,excel就会崩溃。可能是它已损坏,如果您无法复制,请创建一个新工作簿并继续,无法打开您的用户窗体。一直在说
系统错误&H80004005
,然后内存不足。导出所有模块,然后将工作簿另存为.xlsx以丢弃所有宏,重新导入所有模块,然后另存为.xlsm并重新编译。@Comintern谢谢你的建议,但在我这样做之后,我得到了相同的错误。看起来很奇怪。如果在按钮中没有调用任何基于excel的内容,只需切换这些按钮,excel就会崩溃。可能是它已损坏,如果您无法复制,请创建一个新工作簿并继续,无法打开您的用户窗体。一直在说
系统错误&H80004005
,然后内存不足。导出所有模块,然后将工作簿另存为.xlsx以丢弃所有宏,重新导入所有模块,然后另存为.xlsm并重新编译。@Comintern谢谢你的建议,但在我这样做之后,我收到了相同的错误。是否仍要复制或“修复”当前用户表单?建造起来花了不少时间。有很多控件和交互,如果可能的话,希望避免从头开始重建。这确实有效。通过打开2个excel实例,复制并粘贴工作控件,然后重建损坏的控件,我可以相当快地重建userform。谢谢。是否有复制或“修复”当前用户表单的方法?建造起来花了不少时间。有很多控件和交互,如果可能的话,希望避免从头开始重建。这确实有效。通过打开2个excel实例,复制并粘贴工作控件,然后重建损坏的控件,我可以相当快地重建userform。非常感谢。