-1

我有一个 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)  
4

2 回答 2

5

该线程为我提供了问题的答案:

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

显然,当用户窗体具有太多控件时,Excel 会遇到内存问题。打开 VBA 编辑器会以某种方式绕过内存问题并允许关联的宏正常运行。

要使这一过程自动化,只需将以下代码行添加到宏的开头:

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

于 2016-04-19T21:12:18.677 回答
1

我找到了解决方案!几个月来打开一个用户窗体而没有首先在 VBA 编辑器中打开窗体会使整个程序陷入困境。

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

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

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

它告诉 Excel 在您单击按钮后立即加载表单,而不是先加载进入表单的所有内容。这与打开 VBA 窗口的作用基本相同。

于 2019-06-28T17:04:33.837 回答