求助:下总共三组数据(在实际中是随机产生,三组数据不等,实际中每组数据大约在450个),以第一组数据为基数,在第二组中寻找符合第一组数据的第2位和第3位进行匹配,匹配后会产生一个4位数,这个4位数的第3位第4位再和第3组数据进行匹配,会产生一个5位数,并以此排列。 举例:第一组017对应第二组17*的数据。0170,0172,0173等等。0170对应第三组数据70开始的数据,会产生一组5位数:01701,01702,01703等等
- Sub 数据生成()
- Dim newarr(), ar As Integer, br As Integer, cr As Integer, a As Integer, b As Integer, c As Integer
- Dim aa As String, bb As String, cc As String, k As Byte
- Range("e2:CA10000").ClearContents
- ar = Range("a65536").End(xlUp).Row
- ReDim newarr(1 To ar - 1, 1 To 200)
- For a = 2 To ar
- If Range("a" & a) = "" Then
- a = a + 1
- End If
-
- aa = Mid(Range("a" & a), 2, 2)
- On Error Resume Next
- br = Application.Match(aa & "*", Range("b1:b65536"), 0)
- Do While aa = Mid(Range("b" & br), 1, 2)
- bb = Mid(Range("b" & br), 2, 2)
- cr = Application.Match(bb & "*", Range("c1:c65536"), 0)
- Do While bb = Mid(Range("c" & cr), 1, 2)
- k = k + 1
- newarr(a - 1, k) = Mid(Range("A" & a), 1, 3) & Mid(Range("c" & cr), 2, 2)
- cr = cr + 1
- Loop
- br = br + 1
- Loop
- k = 0
- Next
- Range("e2").Resize(a - 2, 200) = newarr
- End Sub
复制代码
|