在Excel VBA中使用变量搜索文件名

时间:2015-03-27 18:36:24

标签: excel excel-vba vba

我的代码应该在服务器上的文件夹中搜索文件名,如果该文件存在,则提示用户覆盖该文件。但是,无论文件是否存在,代码始终会提示用户。

我发现了一些关于此站点的示例,但是它们使用静态文件名。我试图修改它以满足我的需要,但没有到达任何地方。

查找文件是否存在的代码如下

'checks if file you're saving already exists
    If FileThere("\\showdog\service\Service_job_PO\" & UserInput) = True Then
        'do stuff here

该代码的功能是:

Function FileThere(filename As String) As Boolean
 If FileThere = (Dir("\\showdog\service\Service_job_PO\" & UserInput) <> "") Then
 FileThere = True
 Else
 FileThere = False
 End If     
End Function

2 个答案:

答案 0 :(得分:2)

我相信这应该是以下内容。您想检查与传递的参数filename关联的目录是否存在。

Function FileThere(filename As String) As Boolean
 If Dir(filename) <> "" Then
 FileThere = True
 Else
 FileThere = False
 End If     
End Function

编辑:

我假设您在此行中提供完整的文件路径,在这种情况下,您引用发送到函数FileThere的文件路径。

 If FileThere("\\showdog\service\Service_job_PO\" & UserInput) = True Then

答案 1 :(得分:0)

你可以把这一切都减少到一次测试而不是用UDF加倍:

If Len(Dir("\\showdog\service\Service_job_PO\" & UserInput)) > 0 Then

根据上面的其他评论,您的初始代码是使用 UserInput 两次