Option Explicit
Sub TEST_20221228_1()
Dim i&, N&, A$, Arr
'↑宣告變數:(i,N)是長整數變數,A是字串變數,Arr是通用型變數
Arr = Range([A1], Cells(Rows.Count, 1).End(3))
'↑令Arr是 二維陣列,以[A1]到A欄有內容最後列儲存格,這之間儲存格值倒入
For i = 1 To UBound(Arr)
'↑設順迴圈!i從1到Arr陣列縱向最大索引列號數
A = StrConv(Arr(i, 1), vbNarrow)
'↑令A這字串變數是i迴圈Arr陣列值經StrConv() 將全形字轉為半形字 的字串
'StrConv 函式
'https://learn.microsoft.com/zh-tw/office/vba/language/reference/user-interface-help/strconv-function
If A Like "*:??????????*" Then
'↑如果A字串變數包含 ":"冒號後面有10個以上字元 ?
Arr(i, 1) = Left(Split(A, ":")(1), 10)
'↑令i迴圈Arr陣列值換成: A字串變數以 ":"字元分割後的索引號1的一維陣列值再取左側10字元
If Arr(i, 1) Like "7????????H" = False Then N = N + 1
'↑如果i迴圈Arr陣列值不是前7 後H 包夾的10個字元,就令N這長整數變數累加1
Else
Arr(i, 1) = ""
'↑令i迴圈Arr陣列值是 空字元
End If
Next
[C1].Resize(UBound(Arr), 1) = Arr
'↑令[C1] 擴展向下Arr陣列縱向最大索引列號數列, 向右不擴展, 這範圍儲存格值以Arr陣列值帶入
MsgBox N & " 個結果疑似規則異常!"
End Sub作者: Andy2483 時間: 2022-12-28 08:46
Option Explicit
Sub TEST_20221228_2()
Dim i&, N&, A$, Arr, Brr, j
'↑宣告變數:(i,N)是長整數變數,A是字串變數,(Arr,Brr,j)是通用型變數
Arr = Range([A1], Cells(Rows.Count, 1).End(3))
'↑令Arr是 二維陣列,以[A1]到A欄有內容最後列儲存格,這之間儲存格值倒入
For i = 1 To UBound(Arr)
'↑設順迴圈!i從1到Arr陣列縱向最大索引列號數
A = StrConv(Arr(i, 1), vbNarrow)
'↑令A這字串變數是i迴圈Arr陣列值經StrConv() 將全形字轉為半形字 的字串
'StrConv 函式
'https://learn.microsoft.com/zh-tw/office/vba/language/reference/user-interface-help/strconv-function
If A Like "*:7????????H*" Then
'↑如果A字串變數包含 ":"冒號後面有10個以上字元 ?
Brr = Split(A, ":")
'↑令Brr是一維陣列,帶入以":"分割A字串變數的陣列值
For Each j In Brr
'↑設順迴圈!令j是 Brr陣列裡的值
j = Left(j, 10)
'↑令j這通用變數是自身 取前10個字的字串
If j Like "7????????H" Then Arr(i, 1) = j: Exit For
'↑如果j字串變數是 前7 後H 包夾的10個字元,就令i迴圈Arr陣列值換成j變數值:結束j迴圈
Next
If Arr(i, 1) Like "7GA??????H" = False Then N = N + 1
'↑如果i迴圈Arr陣列值不是前7GA 後H 包夾的10個字元,就令N這長整數變數累加1
Else
Arr(i, 1) = ""
'↑令i迴圈Arr陣列值是 空字元
End If
Next
[C1].Resize(UBound(Arr), 1) = Arr
'↑令[C1] 擴展向下Arr陣列縱向最大索引列號數列, 向右不擴展, 這範圍儲存格值以Arr陣列值帶入
MsgBox N & " 個結果疑似規則異常!"
Set Arr = Nothing
End Sub