vba判断文件夹是否存在
VBA中有时要判断文件或文件夹是否存在,为打开文件作准备,这里采用错误机制来判断
代码如下:
Function 文件或文件夹是否存在(全路径 As String) As Boolean
On Error GoTo
EarlyExit
If Not Dir(全路径, vbDirectory) = vbNullString Then
文件或文件夹是否存在 = True
End If
Exit Function
EarlyExit:
文件或文件夹是否存在 = False
End Function
需在说明的是,参数“全路径”要有盘符之类的,呵呵
使用方法与其它函数一样
VBA的操作中,有时要打开一个文件,但要是文件已打开,再次通过程序打开时,会出现错误,因此,在打开文件之前,需在先判断文件是否已打开,下面是判断代码:
Function 文件是否打开(文件名 As
String) As Boolean
On Error Resume Next
文件是否打开 = True
If StrComp(Workbooks(文件名).Name, 文件名, vbTextCompare) 0 Then
文件是否打开 = False
End If
End Function
需要说明的是,参数“文件名”是短文件名(不带路径的文件名)
Function 特殊文件夹路径(文件夹名
As String) As String
Dim WSHShell As Object
Dim lj As String
Set WSHShell =
CreateObject("Wscript.Shell")
lj = WSHShell.SpecialFolders(文件夹名)
Set WSHShell = Nothing
特殊文件夹路径 = lj
End Function
文件夹名有:
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu
Startup
Templates
VBA中有时要判断文件或文件夹是否存在,为打开文件作准备,这里采用错误机制来判断
代码如下:
Function 文件或文件夹是否存在(全路径 As String) As Boolean
On Error GoTo
EarlyExit
If Not Dir(全路径, vbDirectory) = vbNullString Then
文件或文件夹是否存在 = True
End If
Exit Function
EarlyExit:
文件或文件夹是否存在 = False
End Function
需在说明的是,参数“全路径”要有盘符之类的,呵呵
使用方法与其它函数一样
VBA的操作中,有时要打开一个文件,但要是文件已打开,再次通过程序打开时,会出现错误,因此,在打开文件之前,需在先判断文件是否已打开,下面是判断代码:
Function 文件是否打开(文件名 As
String) As Boolean
On Error Resume Next
文件是否打开 = True
If StrComp(Workbooks(文件名).Name, 文件名, vbTextCompare) <> 0 Then
文件是否打开 = False
End If
End Function
需要说明的是,参数“文件名”是短文件名(不带路径的文件名)
Function 特殊文件夹路径(文件夹名
As String) As String
Dim WSHShell As Object
Dim lj As String
Set WSHShell =
CreateObject("Wscript.Shell")
lj = WSHShell.SpecialFolders(文件夹名)
Set WSHShell = Nothing
特殊文件夹路径 = lj
End Function
文件夹名有:
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu
Startup
Templates
Dim iFSO As Object
Set iFSO = CreateObject("Scripting.FileSystemObject")
Dim iPath As String
iPath = InputBox("请输入文件夹路径:")
If iFSO.FolderExists(iPath) Then
MsgBox "存在"
Else
MsgBox "不存在"
End If
End Sub