tags:

views:

161

answers:

4

How to extract the filename "myfile.pdf" from "C:\Documents\myfile.pdf" in vba?

+4  A: 

This is taken from snippets.dzone.com:

Function GetFilenameFromPath(ByVal strPath As String) As String
' Returns the rightmost characters of a string upto but not including the rightmost '\'
' e.g. 'c:\winnt\win.ini' returns 'win.ini'

    If Right$(strPath, 1) <> "\" And Len(strPath) > 0 Then
        GetFilenameFromPath = GetFilenameFromPath(Left$(strPath, Len(strPath) - 1)) + Right$(strPath, 1)
    End If
End Function
Gonzalo
+2  A: 

Try using the split function to get the file name from the path: MSDN link

jonaspp
+1  A: 

The best way of working with files and directories in VBA for Office 2000/2003 is using the scripting library. Add a reference to Microsoft Scripting Runtime (Tools > References in the IDE).

Create a filesystem object and do all operations using that.

Dim fso as new FileSystemObject
Dim fileName As String
fileName = fso.GetFileName("c:\any path\file.txt")

The FileSystemObject is great. It offers a lot of features such as getting special folders (My documents, etc), creating, moving, copying, deleting files and directories in an object oriented manner. Check it out.

Zen
A: 

Dir("C:\Documents\myfile.pdf")

will return the file name, but only if it exists.

Dick Kusleika