Joa*_*lai 1 excel vba excel-vba
我正在使用此功能从单元格中提取单词.
Function FindWord(Source As String, Position As Integer)
Dim arr() As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
FindWord = ""
Else
FindWord = arr(Position - 1)
End If
End Function
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来提取多个单词而不是一个单词.
您可以使用ParamArray参数指定任意数量的Position参数.
像这样的东西:
Function FindWord(Source As String, ParamArray Position())
Dim arr() As String
Dim i As Long
Dim xCount As Long
Dim ReturnString As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
For i = 0 To UBound(Position)
If (Position(i) - 1) <= xCount And Position(i) > 0 Then
ReturnString = ReturnString & " " & arr(Position(i) - 1)
End If
Next
FindWord = Trim$(ReturnString)
End Function
Run Code Online (Sandbox Code Playgroud)
然后称之为
=FindWord(A1,3,2,1)
Run Code Online (Sandbox Code Playgroud)
根据需要指定多个位置