Excel精英培训网

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

[已解决]为什么我想生成到F至M列把For k = 6 To 12改成For k = 6 To 14还不行

[复制链接]
发表于 2014-10-31 10:53 | 显示全部楼层 |阅读模式
为什么我想生成到F至M列把For k = 6 To 12改成For k = 6 To 14还不行
求助.zip (24.18 KB, 下载次数: 5)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-10-31 10:59 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. Dim arr, brr, crr, d, i%, j&, k%
  3. Set d = CreateObject("scripting.dictionary")
  4. brr = Range("a3").CurrentRegion
  5. ReDim crr(1 To UBound(brr) - 2, 1 To 10)
  6. For i = 1 To Sheets.Count - 1
  7.     dgb = Split(Sheets(i).Name, "(")(1)
  8.     dm = Left(dgb, Len(dgb) - 1)
  9.     arr = Sheets(i).Range("a1").CurrentRegion
  10.     For j = 4 To UBound(arr) - 1
  11.         If arr(j, 2) = "" Then arr(j, 2) = arr(j - 1, 2)
  12.         If arr(j, 4) = "" Then arr(j, 4) = arr(j - 1, 4)
  13.         zf = arr(j, 2) & "," & arr(j, 4) & "," & arr(j, 5)
  14.         For k = 6 To 14
  15.             d(zf & "," & arr(3, k)) = d(zf & "," & arr(3, k)) + arr(j, k)
  16.         Next
  17.         If arr(j, 15) = "√" Then
  18.             zf2 = zf & "," & "打勾"
  19.             If Not d.exists(zf2) Then d(zf2) = dm Else d(zf2) = d(zf2) & ";" & dm
  20.         End If
  21.     Next
  22. Next
  23. For j = 2 To UBound(brr) - 1
  24.     If brr(j, 2) = "" Then brr(j, 2) = brr(j - 1, 2)
  25.     If brr(j, 4) = "" Then brr(j, 4) = brr(j - 1, 4)
  26.     zf = brr(j, 2) & "," & brr(j, 4) & "," & brr(j, 5)
  27.     crr(j - 1, 10) = d(zf & "," & "打勾")
  28.     For k = 6 To 14
  29.         crr(j - 1, k - 5) = d(zf & "," & brr(1, k))
  30.     Next
  31. Next
  32. Range("f4").Resize(UBound(crr), 10) = crr
  33. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
qinhuan66 + 3 很给力!谢谢

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 18:45 , Processed in 0.248742 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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