我把你的代码在命令窗口中执行没错,但把500改为2020报错,在按扭上改成这样,执行的结果全是222220022,请教问题出在哪呢?
'Dim d As Long
Dim lst As new List(of Long)
Dim i As Long = 0
Dim p1 As String = "0$"
Dim p2 As String = "^[0,2]+$"
Dim p3 As String = "^2+$"
Dim p4 As String = "0[2]+$"
Dim r As New System.Text.RegularExpressions.Regex(p2)
Do While lst.Count < 2020
Dim i2 As String= i.Tostring
Dim k As Long = i2.length
If r.IsMatch(i2,p2) Then
lst.Add(i)
If r.IsMatch(i2,p1) Then
i += 2
ElseIf r.IsMatch(i2,p4) Then
Dim s2 As String = System.Text.RegularExpressions.Regex.replace(i2,p4,"")
i=clng(s2 & "2".PadRight(k-s2.Length,"0"))
ElseIf r.IsMatch(i2,p3) Then
i=cint("2".PadRight(k+1,"0"))
Else
i += 18
End If
Else
i += 2
End If
Loop
'Dim t As TimeSpan = Date.Now - d
'Output.Show(t.TotalSeconds)
For Each s As Long In lst
'Output.Show(s)
For Each dr As DataRow In DataTables("表A").DataRows
dr("鼠数") = s
Next
Next
[此贴子已经被作者于2020/2/6 19:45:41编辑过]