直接显示,就是一行代码。当然,你的也只是二行代码
'从右第二个字符向左查找 \ 。然后从这个位置+1取字符串。 replace 是去掉可能存在的 \
MsgBox Replace(Mid(s, InStrRev(s, "\", Len(s) - 1) + 1), "\", "")
注:
1、s 等于你的 text1.text
2、如果定义为变量的话,就不要使用 replace ,而使用 IF 去掉。二行代码
s2 = Mid(s, InStrRev(s, "\", Len(s) - 1) + 1) '得到路径
If Right(s2, 1) = "\" Then s2 = Left(s2, Len(s2) - 1) '去尾部 \
3、你的代码发现BUG。
当输入的路径没有最后的 \ 时,你的代码结果错误。
如输入:C:\Documents and Settings\Administrator\桌面\数据\AAAA\BBBB 时,
你的代码返回 AAAA 。
4、你的代码修改:
第一行不变。第二行,如果是直接显示,那么改成:
ss2 = Split(text1.text, "\")
MsgBox IIf(ss2(UBound(ss2)) = "", ss2(UBound(ss2) - 1), ss2(UBound(ss2))) '如果最后一个元素为空白,返回前一个元素,否则返回最后一个元素
如果给变量,用IF语句重写吧。IIF命令开销更大,它是函数。

程序代码:
If ss2(UBound(ss2)) = "" Then
s2 = ss2(UBound(ss2) - 1)
Else
s2 = ss2(UBound(ss2))
End If
[此贴子已经被作者于2017-8-28 16:54编辑过]