我有这个代码。应该检查文件是否存在,如果存在则将其打开。如果文件存在,它确实可以工作,但是如果文件不存在,则每当我将文本框保留为空白并单击提交按钮时,它都会失败。我想要的是,如果文本框为空,则显示错误消息,就像文件不存在一样。


Dim File As String
File = TextBox1.Value
Dim DirFile As String

DirFile = "C:\Documents and Settings\Administrator\Desktop\" & File
If Dir(DirFile) = "" Then
  MsgBox "File does not exist"
Else
    Workbooks.Open Filename:=DirFile
End If

最佳答案

像这样的东西

最好使用工作簿变量来提供对已打开工作簿的进一步控制(如果需要)

已更新以测试文件名是实际的工作簿-除了向用户发送消息(文本框为空)以外,这还使初始检查变得多余

Dim strFile As String
Dim WB As Workbook
strFile = Trim(TextBox1.Value)
Dim DirFile As String
If Len(strFile) = 0 Then Exit Sub

DirFile = "C:\Documents and Settings\Administrator\Desktop\" & strFile
If Len(Dir(DirFile)) = 0 Then
  MsgBox "File does not exist"
Else
 On Error Resume Next
 Set WB = Workbooks.Open(DirFile)
 On Error GoTo 0
 If WB Is Nothing Then MsgBox DirFile & " is invalid", vbCritical
End If

关于excel - VBA检查文件是否存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16351249/

10-10 14:13