String Excel VBA:如果我们知道字符串中第一个和最后一个字母的位置,如何提取子字符串
如果我们给出字符串中第一个字母和最后一个字母的位置,如何从字符串中提取子字符串String Excel VBA:如果我们知道字符串中第一个和最后一个字母的位置,如何提取子字符串,string,excel,vba,String,Excel,Vba,如果我们给出字符串中第一个字母和最后一个字母的位置,如何从字符串中提取子字符串 Dim my_string As String Dim my_substring As String my_string="Excel/Sheet1.xls" instrrev(我的字符串“/”给出6(起始位置) len(我的字符串)给出16(结束位置) 所以,要将“Sheet1.xls”作为我的子字符串,我们应该做什么 或者我们可以选择字符直到首先遇到“/”/这个怎么样 my_substring = Split(
Dim my_string As String
Dim my_substring As String
my_string="Excel/Sheet1.xls"
instrrev(我的字符串“/”
给出6(起始位置)
len(我的字符串)
给出16(结束位置)
所以,要将“Sheet1.xls”作为我的子字符串,我们应该做什么
或者我们可以选择字符直到首先遇到“/”/这个怎么样
my_substring = Split("Excel/Sheet1.xls","/")(1)
会给你
Sheet1.xls
这个解决方案怎么样:
Dim strFileName As String
strFileName = ActiveWorkbook.Path & "/" & ActiveWorkbook.Name
Debug.Print "Start Position: " & Len(strFileName) - InStr(1, StrReverse(strFileName), "/")
Debug.Print "Extacted file name: " & Mid(strFileName, Len(strFileName) - InStr(1, StrReverse(strFileName), "/") + 2)
使用mid函数。参考:我认为你不会比伦敦罗布提供的答案做得更好。对类似的。但这涉及字符串的起始位置和结束位置。如果字符串中有多个
/
,则这不会达到您期望的效果。为什么不稍微修改一下,将拆分
存储在一个变量中,然后使用UBound
获取最后一个元素?我可以建议这一点小小的改进:拆分(strFileName,“/”)(UBound(拆分(strFileName,“/”))
拉尔夫,在这种情况下,我会考虑把数组放在一个变量中,这样分裂函数就不必执行两次。但是,我的建议对一个以上的人是不起作用的。甚至建议检查是否有任何……整洁的解决方案。我不知道有关InStrRev
。我刚刚学到了一些新东西。谢谢
Dim strFileName As String
strFileName = ActiveWorkbook.Path & "/" & ActiveWorkbook.Name
Debug.Print "Start Position: " & Len(strFileName) - InStr(1, StrReverse(strFileName), "/")
Debug.Print "Extacted file name: " & Mid(strFileName, Len(strFileName) - InStr(1, StrReverse(strFileName), "/") + 2)