String VBA将字符串从文件目录拆分为子字符串
我已经搜索了很多这个话题,但还没有找到我的确切问题。而且我似乎不知道如何调整代码样本以供我使用 我正在尝试将“文件目录字符串”从右向左拆分为子字符串String VBA将字符串从文件目录拆分为子字符串,string,ms-access,vba,String,Ms Access,Vba,我已经搜索了很多这个话题,但还没有找到我的确切问题。而且我似乎不知道如何调整代码样本以供我使用 我正在尝试将“文件目录字符串”从右向左拆分为子字符串 "C:\Users\Me\CustomerName\ProductName\2017\" 从右到左,再到右 year productname customername 我尝试使用Split()使其工作时,总是将其拆分到错误的位置。您提到您已尝试使用Split,因此这是一个好的开始: Option Explicit Public Sub Tes
"C:\Users\Me\CustomerName\ProductName\2017\"
从右到左,再到右
year
productname
customername
我尝试使用Split()使其工作时,总是将其拆分到错误的位置。您提到您已尝试使用
Split
,因此这是一个好的开始:
Option Explicit
Public Sub TestMe()
Dim strFolderString As String
Dim arrFolderString As Variant
strFolderString = "C:\Users\Me\CustomerName\ProductName\2017\"
arrFolderString = Split(strFolderString, "\")
Debug.Print arrFolderString(UBound(arrFolderString) - 1)
Debug.Print arrFolderString(UBound(arrFolderString) - 2)
Debug.Print arrFolderString(UBound(arrFolderString) - 3)
End Sub
其思想是使用
UBound
作为从右到左的顺序。我不是从0开始的,因为您的字符串以\
结尾,因此第0个位置为空。您提到您已尝试使用拆分
,因此这是一个很好的开始:
Option Explicit
Public Sub TestMe()
Dim strFolderString As String
Dim arrFolderString As Variant
strFolderString = "C:\Users\Me\CustomerName\ProductName\2017\"
arrFolderString = Split(strFolderString, "\")
Debug.Print arrFolderString(UBound(arrFolderString) - 1)
Debug.Print arrFolderString(UBound(arrFolderString) - 2)
Debug.Print arrFolderString(UBound(arrFolderString) - 3)
End Sub
其思想是使用
UBound
作为从右到左的顺序。我不是从0开始的,因为您的字符串以\
结尾,所以第0位是空的。用您迄今为止尝试过的代码更新您的问题,以及不需要的行为/输出的示例(“…在错误的位置拆分”)。另外:您确定=
部分吗?用您迄今为止尝试过的代码更新您的问题,还有一些不需要的行为/输出的例子(“…在错误的地方分割。”)还有:你们确定==
部分吗?嗨,谢谢你们的帮助。您的Debug.Print arrFolderString(UBound(arrFolderString)-1)
Debug.Print arrFolderString(UBound(arrFolderString)-2)
Debug.Print arrFolderString(UBound(arrFolderString)-3)
输出错误的子字符串,尽管它们都向左移动了一个太远。我已将其更改为Debug.Print arrFolderString(UBound(arrFolderString)-0)Debug.Print arrFolderString(UBound(arrFolderString)-1)Debug.Print arrFolderString(UBound(arrFolderString)-2)
,现在它完全按照需要工作。再次感谢!编辑:很抱歉格式化,我是新手SO@DMS-您的字符串以“\`”结尾,这就是我这样使用它的原因。试试上面的代码。啊,现在我明白了。显然,我真正代码的字符串最后没有\。现在工作完美,谢谢你的帮助:)嗨,谢谢你的工作。您的Debug.Print arrFolderString(UBound(arrFolderString)-1)
Debug.Print arrFolderString(UBound(arrFolderString)-2)
Debug.Print arrFolderString(UBound(arrFolderString)-3)
输出错误的子字符串,尽管它们都向左移动了一个太远。我已将其更改为Debug.Print arrFolderString(UBound(arrFolderString)-0)Debug.Print arrFolderString(UBound(arrFolderString)-1)Debug.Print arrFolderString(UBound(arrFolderString)-2)
,现在它完全按照需要工作。再次感谢!编辑:很抱歉格式化,我是新手SO@DMS-您的字符串以“\`”结尾,这就是我这样使用它的原因。试试上面的代码。啊,现在我明白了。显然,我真正代码的字符串最后没有\。现在工作完美无瑕,谢谢你的帮助:)