Function GetFruits(s As String) As String
Static RE As Object: If RE Is Nothing Then Set RE = CreateObject("vbscript.regexp")
RE.Pattern = """([^""]+)""\s*Fruit\s*=\s*Y\s*(,)?|."
RE.Global = True
GetFruits = Application.Trim(RE.Replace(s, "$1$2 "))
End Function
Sub test()
Dim S As String
Dim result As String
S = Range("A1").Value
For Each s1 In Split(S, ",")
If s1 Like "*Fruit=Y" Then
result = result + " " + s1
End If
Next s1
Range("B1").Value = result
End Sub
3条答案
按热度按时间hs1ihplo1#
只是另一种做事的方式:
当进入CSE时,也应该使用Excel 2019。
对于旧版本的Excel,我相信有各种各样的方法。我喜欢使用正则表达式。例如:
使用
=GetFruits(A1)
调用tvmytwxo2#
假设你整理了你的输入字符串,使它更一致,例如,始终包含“=Y”,而不是“=Y”和“=Y”的混合,并且到处都用“,”分隔,而不是有时用“,”:
wfveoks03#
可以使用VBA过程或函数轻松完成: