Excel:计算一列数据中有多less文本值是仅限于字母数字和所有types

假设我有一个有10,000个条目的专栏。 我想统计这些条目中只有几个字母,数字和字母,最后是其他的一切。 请注意,所有数据都以文本forms存储,而不是数字forms。

我testing了以下,它似乎工作。

请注意,要实现这个function,您需要在VB编辑器中添加对Microsoft VBScript Regular Expressions 5.5的引用:

工具>参考> Microsoft VBScript正则expression式5.5

Sub CountTextPatterns() Dim rngToCheck As Range Dim cl As Range Set rngToCheck = Range("A1:A10000") //Set up the range that contains the text data Dim numbersLetters As VBScript_RegExp_55.RegExp Set numbersLetters = New RegExp numbersLetters.Pattern = "^\d*[a-zA-Z][a-zA-Z0-9]*$" //Regex pattern to match alphanumeric with at least one letter Dim lettersOnly As VBScript_RegExp_55.RegExp Set lettersOnly = New RegExp lettersOnly.Pattern = "^[a-zA-Z]+$" //Regex pattern for letters only Dim cntNumbersLetters As Long, cntLetters As Long, cntRemainder As Long cntNumbersLetters = cntLetters = cntRemainder = 0 //Loop through range, match cell contents to pattern, and increment count accordingly For Each cl In rngToCheck If lettersOnly.Test(cl) Then cntLetters = cntLetters + 1 ElseIf numbersLetters.Test(cl) Then cntNumbersLetters = cntNumbersLetters + 1 End If Next //For anything that isn't letters only or numbers and letters, simply subtract from counts and total row count cntRemainder = rngToCheck.Rows.Count - cntNumbersLetters - cntLetters Debug.Print "Numbers and Letters = " & cntNumbersLetters & vbTab & "Letters = " & cntLetters & vbTab & "Remainder = " & cntRemainder End Sub