首页 > 解决方案 > 错误处理不适用于 excel-vba 中的运行时错误 9

问题描述

我想在 Excel VBA 中应用错误处理机制,我想捕捉这个“运行时错误 9”,但它不起作用。
我一遍又一遍地使用这个 userform_initialize() 方法/子,每次我不想打开这个“SAMPLE UPDATE FILE.xlsm”工作簿时,我想检查它是否已经打开。如果是,则切换到该窗口或打开该工作簿。

我也尝试过on error resume next声明,但仍然在切换到窗口时中断"Windows("SAMPLE UPDATE FILE.xlsm "). Select"

Private Sub UserForm_Initialize()
Application.DisplayAlerts = False
    On Error GoTo OPEN_WB_ERR
    Windows("SAMPLE UPDATE FILE.xlsm").Select
    UserForm1.ComboBox1.RowSource = ("'X:\SAMPLE UPDATE FILE.xlsm'!SEARCH")
    Windows("PROFORMA_INVOICE.xlsm").Activate
    On Error GoTo 0
    Exit Sub
OPEN_WB_ERR:
    Workbooks.Open Filename:="X:\SAMPLE UPDATE FILE.xlsm"
    UserForm1.ComboBox1.RowSource = ("'X:\SAMPLE UPDATE FILE.xlsm'!SEARCH")

    Windows("PROFORMA_INVOICE.xlsm").Activate
Resume Next
End Sub

任何建议都会有所帮助...

标签: excelvba

解决方案


检查您在 VB 编辑器中的设置(工具 >> 选项 >> 常规选项卡 >> 错误捕获)以了解如何处理错误 - 如果您选择了“中断所有错误”,那么无论您设置的任何错误处理如何,它都会中断. “Break in Class 模块”是一个不错的选择。


推荐阅读