首页 > 解决方案 > 目录中不存在文件时的 VBA 错误处理

问题描述

如果工作簿存在于基于单元格条目的特定文件夹中,我已经编写了一些代码来启动它们。当条目为空白和/或文件中不存在该条目时,我无法显示错误消息。我尝试使用On Error GoTo MsgBox,但即使输入正确,也会显示 MsgBox。

Private Sub Worksheet_Change(ByVal Target As Range)

'PART NUMBER DECLARATIONS
Dim part1 As Long
Dim part2 As Long

'Variable Assignments
part1 = 123
part2 = 234

If Target.Address = "$G$9" Then

varCellvalue = Range("G9").Value

Workbooks.Open "C:\Users\USERX\Desktop\Test File\" & varCellvalue & ""

 ElseIF varCellvalue <> Range("G9").Value Then

MsgBox" Invalid Part Number"

End If


End Sub

标签: excelvbaerror-handling

解决方案


另一种方法不是使用错误处理,而是简单地检查文件是否存在,然后做出适当的响应:

Private Sub Worksheet_Change(ByVal Target As Range)
   'PART NUMBER DECLARATIONS
   Dim part1 As Long
   Dim part2 As Long

   'Variable Assignments
   part1 = 123
   part2 = 234

   If Target.Address = "$G$9" Then
      varCellvalue = "C:\Users\USERX\Desktop\Test File\" & Range("G9").Value & ""

      If Dir(varCellvalue) <> "" Then
         Workbooks.Open varCellvalue
      Else
         MsgBox "The file does not exist"
      End If
   End If
End Sub

我认为这种方法更干净,也许更直观。


推荐阅读