估計妳調試過程中切換過工作表。試試看:
Sub 找出連續長度的字符串()
Dim str As String
Dim substr As String
Dim t As Integer
Dim M&, h, j&, k&
Dim maxRow As Long
Dim Arr() As String
With Sheet1 '註:妳的數據所在的工作表名稱,修改後再用
For M = 1 To 1000
str = .Range("A" & M).Value '配合 With 語句,這裏用 "." 代替 Sheet1
'判斷單元格字符串長度超過30就對非數字字符進行替換
If Len(str) > 30 Then
For i = 1 To Len(str)
substr = Mid(str, i, 1)
If substr >= "0" And substr <= "9" Then
Else
.Range("A" & M).Replace substr, "a" '配合 With 語句,這裏用 "." 代替 Sheet1
End If
Next i
'判斷11位連續數字後,輸出該數字和行號
Arr() = Split(.Range("A" & M), "a")? '配合 With 語句,這裏用 "." 代替 Sheet1
k = UBound(Arr)
For j = 0 To k
h = Len(Arr(j))
If h = 11 Then
.Range("B" & M).Value = Arr(j) '配合 With 語句,這裏用 "." 代替 Sheet1
.Range("C" & M).Value = M '配合 With 語句,這裏用 "." 代替 Sheet1
End If
Next
End If
Next?
End With
End Sub