Excel精英培训网

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

[已解决]求助,数组超限问题

[复制链接]
发表于 2011-10-28 16:06 | 显示全部楼层 |阅读模式
数组超限,请高手帮助
最佳答案
2011-10-28 16:22
  1. Sub mxzh() '明细统计
  2.     Dim mxzh As Worksheet, pzqd As Worksheet
  3.     Set mxzh = Worksheets("明细统计")
  4.     Set pzqd = Worksheets("记工清单")
  5.     Dim r_end%, x%, j%
  6.     Dim i As Integer, r As Integer, arr(), arr1()
  7.         r_end = pzqd.Cells(Rows.Count, 2).End(xlUp).Row
  8.         arr = pzqd.Range("B5:r" & r_end)
  9.         mxzh.Range("a7:s" & Rows.Count).Clear
  10.       
  11.         mxzh.Range("d4").Select
  12.         i = 1
  13.         j = 1
  14.    With mxzh
  15.         For r = 1 To UBound(arr, 1)
  16.             If arr(r, 11) = Range("l4") And arr(r, 12) = Range("m4") Then
  17.                 i = i + 1
  18.                 ReDim Preserve arr1(1 To 17, 1 To i)
  19.                     For l = 1 To 17
  20.                         arr1(l, j) = arr(r, l)
  21.                     Next l
  22.                     j = j + 1

  23.             Else
  24.                If arr(r, 11) = Range("l4") And Range("m4") = 0 Then
  25.                    i = i + 1
  26.                    ReDim Preserve arr1(1 To 17, 1 To i)
  27.                    For l = 1 To 17
  28.                        arr1(l, j) = arr(r, l)
  29.                     Next l
  30.                     j = j + 1
  31.                 End If
  32.             End If
  33.         Next r
  34.         
  35.            [b7].Resize(UBound(arr1, 2), 17) = Application.Transpose(arr1)
  36.        End With
  37.     End Sub
复制代码

统计.rar

58.73 KB, 下载次数: 11

发表于 2011-10-28 16:20 | 显示全部楼层
ReDim Preserve arr1(1 To i, 1 To 17)
只能增加列,不能增加行!
ReDim Preserve arr1(1 To 17,1 To i )
最后把数组转置一下就可以了!
回复

使用道具 举报

发表于 2011-10-28 16:22 | 显示全部楼层    本楼为最佳答案   
  1. Sub mxzh() '明细统计
  2.     Dim mxzh As Worksheet, pzqd As Worksheet
  3.     Set mxzh = Worksheets("明细统计")
  4.     Set pzqd = Worksheets("记工清单")
  5.     Dim r_end%, x%, j%
  6.     Dim i As Integer, r As Integer, arr(), arr1()
  7.         r_end = pzqd.Cells(Rows.Count, 2).End(xlUp).Row
  8.         arr = pzqd.Range("B5:r" & r_end)
  9.         mxzh.Range("a7:s" & Rows.Count).Clear
  10.       
  11.         mxzh.Range("d4").Select
  12.         i = 1
  13.         j = 1
  14.    With mxzh
  15.         For r = 1 To UBound(arr, 1)
  16.             If arr(r, 11) = Range("l4") And arr(r, 12) = Range("m4") Then
  17.                 i = i + 1
  18.                 ReDim Preserve arr1(1 To 17, 1 To i)
  19.                     For l = 1 To 17
  20.                         arr1(l, j) = arr(r, l)
  21.                     Next l
  22.                     j = j + 1

  23.             Else
  24.                If arr(r, 11) = Range("l4") And Range("m4") = 0 Then
  25.                    i = i + 1
  26.                    ReDim Preserve arr1(1 To 17, 1 To i)
  27.                    For l = 1 To 17
  28.                        arr1(l, j) = arr(r, l)
  29.                     Next l
  30.                     j = j + 1
  31.                 End If
  32.             End If
  33.         Next r
  34.         
  35.            [b7].Resize(UBound(arr1, 2), 17) = Application.Transpose(arr1)
  36.        End With
  37.     End Sub
复制代码
回复

使用道具 举报

发表于 2011-10-28 16:30 | 显示全部楼层
回复 scl5801 的帖子

统计-1(VBA).rar (56.71 KB, 下载次数: 20)
回复

使用道具 举报

 楼主| 发表于 2011-10-28 16:31 | 显示全部楼层
感谢楼上的各位热心帮助!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 20:02 , Processed in 0.279673 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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