vba判断文件夹是否存在

 我来答
靠谱的星爷xy
2018-04-16 · TA获得超过2.5万个赞
知道小有建树答主
回答量:49
采纳率:100%
帮助的人:7515
展开全部

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

姓王的wy451

2014-02-25 · TA获得超过48.3万个赞
知道大有可为答主
回答量:8万
采纳率:78%
帮助的人:8734万
展开全部
当函数 Dir("带盘符的文件夹名称", vbDirectory) 返回值为“”(空字符串)时,文件夹不存在,否则文件夹存在。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清水兰刀
推荐于2017-12-16
知道答主
回答量:16
采纳率:0%
帮助的人:13.1万
展开全部
借用别人的答案,没记得从哪来了,感谢前辈,仅供参考。
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
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mufeng2011
2014-02-25 · 超过18用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:39.5万
展开全部
Sub Main()
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式