<p><strong>Luckyguy2008的代码比较长,但也是速度最快的一位,也是本期的胜者:</strong><br/>Sub Start()</p><p> Dim i, j, k, row_max, row_temp, num_max, column_max, page, temp_array(), num() As Integer<br/> <br/> Dim number As Long</p><p> Dim temp_range As Range</p><p> Dim time_start As Double</p><p> time_start = Timer</p><p> Application.ScreenUpdating = False</p><p> row_max = 200</p><p> num_max = 999</p><p> page = Int((num_max + 1) / row_max) + IIf((num_max + 1) Mod row_max = 0, 0, 1)</p><p> For i = 1 To page - 1</p><p> Sheets.Add , Worksheets(Sheets.Count)</p><p> Next i</p><p> Sheets(1).Select</p><p> column_max = Len(num_max)</p><p> ReDim num(1 To column_max)</p><p> For i = 1 To column_max</p><p> num(i) = 10 ^ (column_max - i)</p><p> Next i</p><p> ReDim temp_array(1 To row_max, 1 To column_max)</p><p> number = 0</p><p> row_temp = row_max</p><p> For i = 1 To page</p><p> If i = page Then</p><p> row_temp = num_max Mod row_max + 1</p><p> ReDim temp_array(1 To row_temp, 1 To column_max)</p><p> End If</p><p> For j = 1 To row_temp</p><p> For k = 1 To column_max</p><p> temp_array(j, k) = (number \ num(k)) Mod 10</p><p> Next k</p><p> number = number + 1</p><p> Next j<br/> <br/> Set temp_range = Sheets(i).Range("A1:" & Chr(64 + column_max) & row_temp)<br/> <br/> temp_range.Value = temp_array</p><p> Next i</p><p> MsgBox 1000 * (Timer - time_start) & "毫秒"</p><p> Application.ScreenUpdating = True<br/> <br/>End Sub<br/><strong>耗时15.47毫秒</strong></p>
[此贴子已经被作者于2007-5-1 10:22:58编辑过] |