获取文件扩展名 vba

Get file extension vba

我需要将文件的扩展名存储在 VBA 的变量中, 我现在所做的是

file= Hello.pdf
extension = split(file,".")(1)

但有时我的文件可能像 file = 1.Filename.pdf 这样我的扩展变量就不再工作了...

有人能帮我找到一个解决方案来始终从任何文件名中获取扩展名,即使它们是“.”的倍数。在里面。

我有个想法是从右到左读取并在读取“.”时获取字符串。但我是 vba 的新手,不知道从哪里开始....

试试,

Dim vFn As Variant

file = "Hello.pdf"

vFn = Split(file, ".")
extension = vFn(UBound(vFn))

试试这个

Sub Get_Extension()
    Dim fso As Object, sFile As String
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    sFile = "Hello.pdf"
    
    Debug.Print Right(sFile, Len(sFile) - InStrRev(sFile, "."))
    Debug.Print fso.GetExtensionName(sFile)
    Debug.Print Split(sFile, ".")(UBound(Split(sFile, ".")))
End Sub

要获取文件名,您可以使用它

Sub Get_Filename()
    Dim v, fso As Object, sFile As String
    Set fso = CreateObject("Scripting.FileSystemObject")
    sFile = "1.Hello.pdf"
    v = Split(sFile, ".")
    ReDim Preserve v(0 To UBound(v) - 1)
    Debug.Print Join(v, ".")
    Debug.Print fso.GetBaseName(sFile)
    Debug.Print Left(sFile, (InStrRev(sFile, ".", -1, vbTextCompare) - 1))
    Debug.Print Left(sFile, InStrRev(sFile, ".") - 1)
End Sub