Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 张雄友

[已解决]复杂填充

[复制链接]
发表于 2013-12-2 20:24 | 显示全部楼层    本楼为最佳答案   
本帖最后由 xdragon 于 2013-12-2 20:28 编辑
张雄友 发表于 2013-12-2 19:58
执行代码后,最小值不是从2开始的?而且最后一个单元出现了错误值。


我这里执行正常啊,而且,你的默认值根本就达不到,因为03版本的最大行数是65535,40000*3已经超出最大行数了。
  1. Sub 填充序列()

  2. Dim i&, arr, rng As Range, First As String, Last As String

  3. First = Val(InputBox("请输入起始值", "温馨提示", "2"))
  4. Last = Val(InputBox("请输入结束值", "温馨提示", "40000"))
  5. Set rng = Application.InputBox("在哪个单元格开始生成?", "温馨提示", , , , , , 8)

  6. If Len(First) = 0 Or Len(Last) = 0 Or rng Is Nothing Then Exit Sub
  7. If (Last - First + 1) * 3 > Rows.Count Then MsgBox "生成的数据列大于表格最大允许的行", , "提示"

  8. ReDim arr(1 To (Last - First + 1) * 3, 1 To 1)
  9. TT = Timer

  10. For i = 1 To UBound(arr)
  11. arr(i, 1) = First + (i - 1) \ 3
  12. Next

  13. rng.Resize(UBound(arr)) = arr

  14. MsgBox "用时" & Format(Timer - TT, "0.00") & "秒"

  15. End Sub
复制代码
稍微做了下小改动。。。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-16 20:50 , Processed in 0.298702 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表