如何设置案例,省略任何字符小于X字符

我正在处理以下循环。 我有一个案例,省略或黑名单中的某些字在VBA中 。 但是,我想省略less于3个字符的字词。

For i = 0 To UBound(words, 1) Select Case words(i) Case = "and","or","big","small","whatever else you want to add" Case Else For Each phrase In phrases If InStr(1, phrase.Value, words(i)) Then matches = matches & phrase & "/" End If Next phrase End Select Next i 

任何人都知道如何做到这一点? 我正在考虑Case => "[something for 3 characters]"与其他代码一起插入。 您积极的投入和支持表示赞赏。

testing单词的长度:

 For i = 0 To UBound(words, 1) If Len(words(i)) > 2 Then Select Case words(i) Case = "and", "big", "small", "whatever else you want to add" Case Else For Each phrase In phrases If InStr(1, phrase.Value, words(i)) Then matches = matches & phrase & "/" End If Next phrase End Select End If Next i 
 Dim forbiddenWordsArr As Variant Dim forbiddenWords As String forbiddenWordsArr= Array("and","or","big","small","whatever else you want to add") forbiddenWords="|" & Join(forbiddenWordsArr,"|"), & "|" For i = 0 To UBound(words, 1) Select Case True Case = Len(words(i))<3 or InStr(forbiddenWords, "|" & words(i) & "|") > 0 Case Else ... 

我回头看看你发布的原始链接。

我认为你最好把这个正则Regexp所有不必要的单词(你的黑名单和不到3个字符)删除掉,留在一维数组中,用于你的短语。

 Dim StrIn As String Dim objRegex As Object Dim Words StrIn = Join(Application.Transpose(ThisWorkbook.Worksheets("Topics").Range("D1:D3000")), Chr(32)) Set objRegex = CreateObject("vbscript.regexp") With objRegex .Pattern = "\b([az]{1,2}|and|or|big|small)\b" .Global = True .ignorecase = True StrIn = Application.Trim(.Replace(StrIn, vbNullString)) End With Words = Split(StrIn, Chr(32))