Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1640|回复: 2

[已解决]请修改下标越界!

[复制链接]
发表于 2013-7-14 20:26 | 显示全部楼层 |阅读模式
  1. Sub 入库()
  2. Dim x&, y&, Arr, Brr(), d1, d2, Row2, d3, d4, br()
  3. Sheet1.Activate
  4. With Sheet1
  5. Row2 = Sheet2.Range("a65536").End(xlUp).Row
  6. d1 = .[P4]: d2 = .[H15]: d3 = .[d15]: d4 = .[c4]
  7. Arr = .Range("b8").CurrentRegion
  8. ReDim Brr(1 To UBound(Arr), 1 To 14)
  9. For x = 1 To 3
  10. If Arr(x, 1) <> "" Then
  11. Brr = Array(d2, Arr(x, 5), d1, Arr(x, 1), Arr(x, 3), Arr(x, 4), Arr(x, 8), Arr(x, 10), Arr(x, 14), Arr(x, 15), Arr(x, 16), d3, , d4)
  12. m = m + 1
  13. For y = 1 To 14
  14. br(m, y) = Brr(x, Brr(y))
  15. Next

  16. End If
  17. Next
  18. If m > 0 Then Sheet2.Range("a" & Row2 + 1).Resize(m, 14) = br
  19. End With
  20. Application.ScreenUpdating = True
  21. End Sub
复制代码
下标越界.rar (11.17 KB, 下载次数: 3)
发表于 2013-7-14 21:05 | 显示全部楼层    本楼为最佳答案   
在for循环前加一行ReDim br(1 To UBound(Arr), 1 To 14);最内层的for循环内容改成br(m, y) = Brr(y - 1)
回复

使用道具 举报

 楼主| 发表于 2013-7-14 21:08 | 显示全部楼层
上清宫主 发表于 2013-7-14 21:05
在for循环前加一行ReDim br(1 To UBound(Arr), 1 To 14);最内层的for循环内容改成br(m, y) = Brr(y - 1)

谢谢!在这里卡着了,现在好了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 03:08 , Processed in 0.261186 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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