某一个文件夹下存了许多文件,想知道某一文件是否存在,然后依据判断结果进行各样的操作。代码可以这么写:
Sub test()
Dim fileName As String
fileName = ThisWorkbook.Path & "\机密文件.xlsx"
If Len(Dir(fileName)) > 0 Then
Debug.Print "Yes"
Else
Debug.Print "No"
End If
End Sub
不过这样的代码只能判断本工作簿所在的文件夹中是否存在,我们可以输出fileName变量查看一下:
C:\Users\Joshua\Desktop\测试\机密文件.xlsx
vba就是用这个路径去查询机密文件.xlsx是否存在,如果机密文件存在文件夹就没办法找见了。
假设如果想要查找本工作簿的上一级目录,即:
C:\Users\Joshua\Desktop\机密文件.xlsx
这个时候该如何写呢。
Sub test()
Dim fileName As String
fileName = ThisWorkbook.Path
fileName = Mid(fileName, 1, InStrRev(fileName, "\"))
fileName = fileName & "机密文件.xlsx"
Debug.Print fileName
End Sub
'输出 → C:\Users\Joshua\Desktop\机密文件.xlsx
这边用到了Mid和InStrRev的用法。这两个函数的用法也是十分简单的。
Mid函数是截取字符串的,而InStrRev函数返回一个字符串在另一个字符串中出现的位置,从字符串的末尾开始查询。这里就不详细展开记录了。