如果我的Access数据库使用一串信息将文件保存到特定位置。在字符串的末尾,每个字符串总是有一个相关的文件扩展名。我需要能够从字符串中提取此信息以将其存储为表字段。
字符串示例:
\\Server\MainFolder\Location\2\LastFolder\02-1234-LastName-20150119_080718FileExtension
我想使用Right函数来拉回“FileExtension”片段,它可能是无数个字母,字符和数字。
答案 0 :(得分:2)
这里给出的答案可能在有限的情况下有效,但肯定不是最好的方法。不要重新发明轮子。 File System Object中的Microsoft Scripting Runtime library已经有了完成此操作的方法。它被称为GetExtensionName。
Function GetAnExtension(fullFilePath As String) As String
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
GetAnExtension = fso.GetExtensionName(fullFilePath)
End Function
答案 1 :(得分:0)
只需使用InStrRev()
和Mid()
InStrRev()
可让您搜索字符串中的子字符串,但 In Rev erse并返回其起始位置。我们可以将它与Mid()
函数结合起来告诉VBA我们要从哪里开始抓取文本:
Sub SO()
x$ = "\Server\MainFolder\Location\2\LastFolder\02-1234-LastName-20150119_080718FileExtension"
fileExt$ = Mid(x, InStrRev(x, "\") + 1) 'fileExt now holds information you need
End Sub
会在最后的“\”之后抓住所有内容,这是你最初提出的问题所暗示的。
答案 2 :(得分:0)
您正在寻找
yourPath = "\Server\MainFolder\Location\2\LastFolder\02-1234-LastName-20150119_080718.FileExtension"
whatYouNeed = Mid(yourPath, InStrRev(yourPath, ".") + 1)
,如果FileExtension前面有.
个句号。