|
发表于 2013-9-14 22:42
|
显示全部楼层
本楼为最佳答案
- Sub SolveTimes()
- Dim d, arr0, arr1(1 To 249, 1 To 60), i, j, k, l
- Set d = CreateObject("Scripting.Dictionary")
- arr0 = Sheets("Sheet1").Range("B2:B" & Sheets("Sheet1").Cells(65536, 2).End(xlUp).Row)
- For i = 1 To 249
- k = 0
- For j = UBound(arr0) To 1 Step -1
- If k < 60 Then
- k = k + 1
- For l = j - i To 1 Step -i
- d(arr0(l, 1)) = 1
- If d.exists(arr0(j, 1)) Then
- arr1(i, k) = d.Count
- Exit For
- Else
- arr1(i, k) = "无"
- End If
- Next l
- d.RemoveAll
- End If
- Next j
- Next i
- Sheets("Sheet2").Cells(26, "CD").Resize(249, 60) = arr1
- End Sub
复制代码 |
|