为什么我需要打开 VBA 编辑器才能将数据加载到用户窗体中?

Why do I need to have the VBA editor open to load data into a Userform?

我有一个 Excel 文件,其中 VBA 宏将数据加载到用户窗体中。

如果我 运行 它没有打开编辑器,它有时会崩溃并关闭 Excel。

如何修复我的文件,这样我就不需要先打开编辑器了?

宏中的示例代码:

Public Sub LoadButton_Click()  

    'Policy Information  
    ZoneLatitudeTextBox.Text = Sheets("Saved Policy Values").Cells(2, 2)  
    ZoneLongitudeTextBox.Text = Sheets("Saved Policy Values").Cells(3, 2)  
    TownClassComboBox.Text = Sheets("Saved Policy Values").Cells(4, 2)  

这个帖子为我提供了问题的答案:

http://www.xtremevbtalk.com/excel/229325-excel-crashes-unless-vba-editor.html

显然 Excel 运行 当用户窗体包含太多控件时会出现内存问题。打开 VBA 编辑器以某种方式绕过了内存问题并允许关联的宏正确 运行。

要自动执行此过程,只需将以下代码行添加到宏的开头即可:

Application.VBE.MainWindow.Visible = True
Application.VBE.MainWindow.Visible = False

我找到了解决方法!!几个月来,如果不先在 VBA 编辑器中打开表单,就打开用户表单会使整个程序崩溃。

Another thread 指出 Excel 更改为并行加载表单,因此当一个部分先于另一个完成时,会导致整个过程崩溃。几乎就像你的朋友在 3 个街区外时给你发短信 "here",如果你在他们到你家之前就出去,你就会死。无论如何。

如果您使用按钮调用用户窗体,请将其添加到 Button_click() 子。

ThisWorkbook.VBProject.VBComponents("UserForm").Activate

它告诉 Excel 在您单击按钮后立即加载表单,而不是先加载进入表单的所有内容。这与打开 VBA window.

本质上是一样的