Return 未知字符数的正确函数
Right Function to Return an Unknown Number of Characters for a sting
如果我的Access数据库我用一串信息来保存文件到一个特定的位置。在字符串的末尾,每个文件总是有一个关联的文件扩展名。我需要能够从字符串中提取此信息以将其存储在 table 字段中。
字符串示例:
\Server\MainFolder\Location\LastFolder-1234-LastName-20150119_080718FileExtension
我想用 Right 函数拉回 "FileExtension" 一块,它可以是无限多的字母、字符和数字。
只需使用 InStrRev()
和 Mid()
InStrRev()
可让您在字符串中搜索子字符串,但 In Reverse 和 returns 这是起始位置。我们可以将它与 Mid()
函数结合起来,告诉 VBA 我们要从哪里开始抓取文本:
Sub SO()
x$ = "\Server\MainFolder\Location\LastFolder-1234-LastName-20150119_080718FileExtension"
fileExt$ = Mid(x, InStrRev(x, "\") + 1) 'fileExt now holds information you need
End Sub
将获取最后一个“\”之后的所有内容,这就是您最初的问题所暗示的内容。
您正在寻找
yourPath = "\Server\MainFolder\Location\LastFolder-1234-LastName-20150119_080718.FileExtension"
whatYouNeed = Mid(yourPath, InStrRev(yourPath, ".") + 1)
,如果 FileExtension 前面有一个 .
句点。
此处给出的答案可能在有限的情况下有效,但肯定不是解决问题的最佳方法。不要重新发明轮子。 File System Object in the Microsoft Scripting Runtime library already has a method to do exactly this. It's called GetExtensionName。
Function GetAnExtension(fullFilePath As String) As String
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
GetAnExtension = fso.GetExtensionName(fullFilePath)
End Function
如果我的Access数据库我用一串信息来保存文件到一个特定的位置。在字符串的末尾,每个文件总是有一个关联的文件扩展名。我需要能够从字符串中提取此信息以将其存储在 table 字段中。
字符串示例:
\Server\MainFolder\Location\LastFolder-1234-LastName-20150119_080718FileExtension
我想用 Right 函数拉回 "FileExtension" 一块,它可以是无限多的字母、字符和数字。
只需使用 InStrRev()
和 Mid()
InStrRev()
可让您在字符串中搜索子字符串,但 In Reverse 和 returns 这是起始位置。我们可以将它与 Mid()
函数结合起来,告诉 VBA 我们要从哪里开始抓取文本:
Sub SO()
x$ = "\Server\MainFolder\Location\LastFolder-1234-LastName-20150119_080718FileExtension"
fileExt$ = Mid(x, InStrRev(x, "\") + 1) 'fileExt now holds information you need
End Sub
将获取最后一个“\”之后的所有内容,这就是您最初的问题所暗示的内容。
您正在寻找
yourPath = "\Server\MainFolder\Location\LastFolder-1234-LastName-20150119_080718.FileExtension"
whatYouNeed = Mid(yourPath, InStrRev(yourPath, ".") + 1)
,如果 FileExtension 前面有一个 .
句点。
此处给出的答案可能在有限的情况下有效,但肯定不是解决问题的最佳方法。不要重新发明轮子。 File System Object in the Microsoft Scripting Runtime library already has a method to do exactly this. It's called GetExtensionName。
Function GetAnExtension(fullFilePath As String) As String
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
GetAnExtension = fso.GetExtensionName(fullFilePath)
End Function