|
- Sub test2()
- Dim r%, i%, m%, n%
- Dim gdz$, ksm$, jsm$
- Dim brr(1 To 2000, 1 To 3000)
- Application.ScreenUpdating = False
- Application.DisplayAlerts = False
- Set d1 = CreateObject("scripting.dictionary")
- Set d2 = CreateObject("scripting.dictionary")
- tt = Timer
- ss = ("0123456789ABCDEFGHJKLMNPQRSTUVWXYZ")
- For i = 1 To Len(ss)
- ch = Mid(ss, i, 1)
- d1(ch) = i - 1
- d2(i - 1) = ch
- Next
-
- With Worksheets("sheet1")
- gdz = .Range("c4")
- ksm = .Range("d4")
- jsm = .Range("d5")
- m = 1
- n = 1
- Do
- brr(m, n) = gdz & ksm
- m = m + 1
- If m > 2000 Then
- m = 1
- n = n + 1
- End If
- c34add ksm, Len(ksm)
- Loop While ksm <> jsm
- .Range("g3").Resize(UBound(brr), UBound(brr, 2)) = brr
- End With
- Application.ScreenUpdating = True
- MsgBox "共用时" & Timer - tt & "秒"
- End Sub
- Sub c34add(ByRef c34 As String, ByVal n As Integer)
- ch = Mid(c34, n, 1)
- If d1(ch) < 33 Then
- c34 = Application.Replace(c34, n, 1, d2(d1(ch) + 1))
- Else
- c34 = Application.Replace(c34, n, 1, "0")
- c34add c34, n - 1
- End If
- End Sub
复制代码 |
|