在Excel(函数或VB)中出现第n个字符后提取文本string
寻找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
是否有一个function,以获得第七次发生后的文字?
split函数将string拆分为任意大小的数组。 Split的第一个参数是要分割的文本,第二个参数是分隔符。
Sub test() Dim arr() As String Text = "Y:\master-documentation\azat\dp\tab\25mg\2-drug-product\azat-tab-25mg-dp-1-bmi-[d-6475703-01-11].pdf" arr = Split(Text, "\") MsgBox (arr(7)) End Sub
如果您有单元格A1中的数据下面的工作表公式提取第7个“\”后的所有内容
=REPLACE(A1,1,FIND("^^",SUBSTITUTE(A1,"\","^^",7)),"")
SUBSTITUTE
函数将第7个"\"
replace为"^^"
[使用您知道不会出现在数据中的任何字符或字符组合]
… FIND
函数查找"^^"
的位置,并允许REPLACE
函数将这些字符全部replace,之前没有任何内容。
filename = Right(fullfilepath, Len(fullfilepath) - InStrRev(fullfilepath, "\"))
InStrRev
查找从头开始search的第一个string。
回来
阿扎特片定位为25mg
从你原来的string中,我返回了从最后一个 “\”到第三个 “ – ”之后的所有内容。
工作表Excelfunction:
=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)
用户定义的function:
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