数据源
短节 %%c700×16 L=380
接管 %%C168.3×7.1 L=151
筒体 %%c700×10 L=5509
定距管%%C25×2.5 L=150
换热管%%C25×2.5 L=6000
现在采用的是If...End if语句,语句太长,看起来也不直观。如
----------------------
If Str Like "*筒*" Or Str Like "*接管*" Or Str Like "*定距管*" Or Str Like "*EHA*" _
Or Str Like "*换热管*" Or Str Like "*短节*" Or Str Like "*挡管*" Or Str Like "*板*" Then
----------------------
请问各位大侠是否有更简单的方法。
谢谢。
短节 %%c700×16 L=380
接管 %%C168.3×7.1 L=151
筒体 %%c700×10 L=5509
定距管%%C25×2.5 L=150
换热管%%C25×2.5 L=6000
现在采用的是If...End if语句,语句太长,看起来也不直观。如
----------------------
If Str Like "*筒*" Or Str Like "*接管*" Or Str Like "*定距管*" Or Str Like "*EHA*" _
Or Str Like "*换热管*" Or Str Like "*短节*" Or Str Like "*挡管*" Or Str Like "*板*" Then
----------------------
请问各位大侠是否有更简单的方法。
谢谢。
instr?
Dim reg As Object
Dim s As String
s = "短节 %%c700×16 L=380"
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.IgnoreCase = True
reg.Pattern = "筒|接管|定距管|换热管|短节|挡管|挡管"
If reg.test(s) Then
MsgBox "match ok!"
End If
End Sub
Private Sub Command1_Click()
Dim a As String, b() As String, f As Boolean
a = "定距管%%C25×2.5 L=150"
b = Split("短节 接管 筒体 定距管 换热管")
For i = 0 To UBound(b)
f = f Or InStr(a, b(i))
If f Then Exit For
Next
If f Then
Debug.Print i + 1
Else
Debug.Print "not"
End If
End Sub
分别取:2,4,6分组就是你要的结果。
Dim Str
With CreateObject("vbscript.regexp")
.Global = True
'完全分离数字
.Pattern = "[^.0-9\r]{1,}"
strData2 = Trim(.Replace(StrData, ","))
End With SplitVbScript = Mid(strData2, 2, Len(strData2) - 1)
End FunctionFunction FDAFDA()
Dim Str
Str = "100-12"
Arr = Split(SplitVbScript(Str), ",")
End Function
分离的结果是
100,12→
100
12