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
Dir ([PathName],[Attributes as VbFileAttribute = vbNormal]) as String 解释:PathName:文件或文件夹的绝对路径。 Attributes:文件的属性--默认值:vbNormal 是普通文件,vbHidden 是隐藏文件,vbDirectory是文件夹。 "[]"内为可以选项。Dir(file)=""表示文件或文件夹不存,即文件或文件夹的实际路径文空。Dir(file)<>""表示文件或文件夹存在,即文件或文件夹实际路径不为空。 例如判断C:\Windows\System32\cmd.exe是否存在,如存在,就调用它,可用下列语句: '文件存,利用Shell调用,默值为vbNormalIf Dir("C:\Windows\System32\cmd.exe")<>"" Then Shell "C:\Windows\System32\cmd.exe"End If 如果判断的文件是隐藏文件,上面的语则无法判断出来,这时就需要加上后面的可选项目,例如 判断D盘根目录下是否有隐藏文件text.txt,就用下面的源代码: If Dir("D:\text.txt",vbHidden)<>"" Then Msgbox "找到Text.txt隐藏文件" End If 判断件夹是否存,与判断隐藏文件的方法一样,可用下列语句: Dir("文件夹路径",vbDirectory)<>"" 例如,要判断文件D:\Backup是否存在,源代码如下: If Dir("D:\Backup",vbDirectory)<>"" Then Msgbox "文件夹:D:\Backup 存在!" End If 二、在VB的编程,也会用到利用应程序时生成文件夹。可以利用下面的言句生成文件夹: MkDir "文件夹路径" 例如:在应用程序根目录下,生成Backup文件夹。在生成之前先判断该文件夹否存在。源代码如下: Dim BackupPath As String Select Case Right(App.Path,1) '判断路径是否包含'\' case '\': BackupPath = App.Path &"Backup" case Else BackupPath = App.Path &"\Backup" End Select If Dir(BackuPath,vbDirectory)="" Then '文件夹不存在 MkDir BackuPath '在应用程序根目下,创建文件夹Backup End If欢迎分享,转载请注明来源:内存溢出
评论列表(0条)