gpt4 book ai didi

string - 如何查找字符串中两个值之间的文本?

转载 作者:行者123 更新时间:2023-12-04 21:55:17 26 4
gpt4 key购买 nike

我目前有一个单元格(“文件名”)。这将返回 H:\F0791\Purchase Requisitions\[PCS.xlsm] .

我想挑出“F0791”值。我以前使用过 MID 函数,但是如果 'F0791' 的长度不同,这将不起作用。

是否可以调用前两个 '\' 之间的值,还是有更好的选择?

我在公式状态和 VBA 中都在寻找这个。这与其他问题不同,因为它们不提供公式替代方案。

最佳答案

您可以使用这个 UDF,它使用 Split Function

Function EXTRACTELEMENT(Txt As String, n, Separator As String) As String
On Error GoTo ErrHandler:
EXTRACTELEMENT = Split(Application.Trim(Mid(Txt, 2)), Separator)(n - 1)
Exit Function
ErrHandler:
' error handling code
MsgBox "ERROR: Verify if the data exists, example if the separator is correct."
On Error GoTo 0
End Function
这是VBA中的一个测试
Sub test()

Text = "H:\F0791\Purchase Requisitions[PCS.xlsm]"
Debug.Print EXTRACTELEMENT(CStr(Text), 2, "\")
End Sub
您也可以将其添加到单元格中,如果 E1= "H:\F0791\Purchase Requisitions[PCS.xlsm]"然后将其添加到所需的结果单元格中。
在单元格 F1 上,此公式: =EXTRACTELEMENT(E1;2;"\")在下图中给出结果:
Example
或者打开插入功能窗口
Insert Function Window
可选,UDF 的描述
这个 code adds a description对于 UDF。您必须运行一次。
Sub DescribeFunction()
Dim FuncName As String
Dim FuncDesc As String
Dim Category As String
Dim ArgDesc(1 To 3) As String

FuncName = "EXTRACTELEMENT"
FuncDesc = "Returns the nth element of a string that uses a separator character"
Category = 7 'Text category
ArgDesc(1) = "String that contains the elements"
ArgDesc(2) = "Element number to return"
ArgDesc(3) = "Single-character element separator (spc default)"

Application.MacroOptions _
Macro:=FuncName, _
Description:=FuncDesc, _
Category:=Category, _
ArgumentDescriptions:=ArgDesc
End Sub

关于string - 如何查找字符串中两个值之间的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46281844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com