获取文件扩展名 vba

问题描述

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

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

但有时我的文件可能类似于 file = 1.Filename.pdf,所以我的扩展变量不再起作用...

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

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

解决方法

试试这个

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
,

试试,

Dim vFn As Variant

file = "Hello.pdf"

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