我需要将文件的扩展名存储在 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))
或
Function FileExt(Optional str = "1.2.3.4.5.dd")
FileExt= Right(str, Len(str) - InStrRev(str, "\"))
End Function
试试这个
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