寻找VB或Excel函数返回
azat-tab-25mg
这
Y:\master-documentation\azat\dp\tab\25mg\2-drug-product\azat-tab-25mg-dp-1-bmi-[d-6475703-01-11].pdf
是否有一个函数可以在\
第7次出现之后获取文本?
答案 0 :(得分:5)
split函数将字符串拆分为任何大小所需的数组。 Split的第一个参数是要拆分的文本,第二个是分隔符。
Sub test()
Dim strFound As String
Text = "Y:\master-documentation\azat\dp\tab\25mg\2-drug-product\azat-tab-25mg-dp-1-bmi-[d-6475703-01-11].pdf"
strFound = Split(Text, "\")(7)
End Sub
答案 1 :(得分:4)
如果您在单元格A1中有数据,则以下工作表公式将在第7个“\”
之后提取所有内容 =REPLACE(A1,1,FIND("^^",SUBSTITUTE(A1,"\","^^",7)),"")
SUBSTITUTE
函数将"\"
替换为"^^"
[使用您知道不会出现在数据中的任何字符或字符组合]
...然后FIND
函数找到"^^"
的位置,并允许REPLACE
函数替换这些字符,之前没有任何内容。
答案 2 :(得分:2)
filename = Right(fullfilepath, Len(fullfilepath) - InStrRev(fullfilepath, "\"))
InStrRev
找到从最后开始搜索的字符串的第一个出现位置。
答案 3 :(得分:1)
返回
阿扎特-制表为25mg
从原始字符串中,我返回了最后" \"直至第三" - "以下
工作表Excel功能:
=LEFT(SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",99)),99)),
"-",CHAR(1),3),FIND(CHAR(1),SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(
A1,"\",REPT(" ",99)),99)),"-",CHAR(1),3))-1)
用户定义的功能:
Option Explicit
Function Meds(S As String) As String
Dim S1 As Variant, S2 As Variant
S1 = Split(S, "\")
S2 = Split(S1(UBound(S1)), "-")
ReDim Preserve S2(0 To 2)
Meds = Join(S2, "-")
End Function