[英]Variable length like operator
我意識到這段代碼並不是很凌亂,因此可能不是必需的,但是有可能壓縮行
Select Case True
Case Info.Feed Like "F#" Or Info.Feed Like "F##" Or Info.Feed like "F###"
'stuff; Info is a class variable
Case Else
'there are more cases but this is all I need to keep things clear
End Select
變成沒有Or
東西? 告訴Excel,當我說#時,這不一定表示一個數字嗎?
Info.Feed like "F*" And isnumeric(mid(Info.Feed,2))
這會抓住
F01
F100
F99999
但是會忽略
F
FX
FX01
F01A
A01
如果要將其限制為F000至F999,請添加LEN
如果使用Like
運算符並達到其極限,則可以在VBA中非常簡潔地使用正則表達式。 在您的情況下,使用F*
將允許FXXX
和F12X
等,我認為您不希望這樣做。
F#,F ##和F ###都說F后跟1到3位數字,可以在單個正則表達式中完成:
^F\d{1,3}$
這是字符串的開頭, F
,1-3位數字,字符串的結尾。
編碼:
Option Explicit
Public Sub Test()
Dim objRegex As Object
Dim InfoFeed As String: InfoFeed = "F123x"
Set objRegex = CreateObject("VBScript.RegExp")
objRegex.Pattern = "^F\d{1,3}$"
If objRegex.Test(InfoFeed) Then
Debug.Print "Do stuff"
Else
Debug.Print "Do other stuff"
End If
End Sub
like "F*"
可能與AND len(x)<=4
,或者如果不取決於長度,則簡單地使用left(info.feed,1)="F"
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.