|
发表于 2013-12-2 20:24
|
显示全部楼层
本楼为最佳答案
本帖最后由 xdragon 于 2013-12-2 20:28 编辑
张雄友 发表于 2013-12-2 19:58
执行代码后,最小值不是从2开始的?而且最后一个单元出现了错误值。
我这里执行正常啊,而且,你的默认值根本就达不到,因为03版本的最大行数是65535,40000*3已经超出最大行数了。- Sub 填充序列()
- Dim i&, arr, rng As Range, First As String, Last As String
- First = Val(InputBox("请输入起始值", "温馨提示", "2"))
- Last = Val(InputBox("请输入结束值", "温馨提示", "40000"))
- Set rng = Application.InputBox("在哪个单元格开始生成?", "温馨提示", , , , , , 8)
- If Len(First) = 0 Or Len(Last) = 0 Or rng Is Nothing Then Exit Sub
- If (Last - First + 1) * 3 > Rows.Count Then MsgBox "生成的数据列大于表格最大允许的行", , "提示"
- ReDim arr(1 To (Last - First + 1) * 3, 1 To 1)
- TT = Timer
- For i = 1 To UBound(arr)
- arr(i, 1) = First + (i - 1) \ 3
- Next
- rng.Resize(UBound(arr)) = arr
- MsgBox "用时" & Format(Timer - TT, "0.00") & "秒"
- End Sub
复制代码 稍微做了下小改动。。。
|
|