Excel精英培训网

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

[已解决]麻烦老师指导如何在“帅老师”基础上进一步实现附件所述功能,谢谢!~

[复制链接]
发表于 2013-2-19 23:34 | 显示全部楼层 |阅读模式
麻烦老师指导如何在“帅老师”基础上进一步实现附件所述功能,谢谢!~ 附件1-2.rar (50.28 KB, 下载次数: 3)
发表于 2013-2-20 00:06 | 显示全部楼层    本楼为最佳答案   
附件1-2.rar (48.07 KB, 下载次数: 11)
回复

使用道具 举报

 楼主| 发表于 2013-2-20 00:23 | 显示全部楼层
cbg2008 发表于 2013-2-20 00:06

精妙!~高手老师真是数不胜数啊!~谢谢老师~
回复

使用道具 举报

发表于 2013-2-20 00:24 | 显示全部楼层
  1. Sub 生成()
  2.     With Sheets("data")
  3.         Arr1 = .Range("A2:L7")
  4.     End With
  5.     Set D = CreateObject("Scripting.Dictionary")
  6.     With Sheets("分析")
  7.         ROW1 = .Range("B65536").End(xlUp).Row
  8.         ARR2 = .Range("C2:I" & ROW1)
  9.         ReDim ARR11(1 To UBound(ARR2), 1 To UBound(ARR2, 2))
  10.         ReDim ARR12(1 To UBound(ARR2), 1 To UBound(ARR2, 2))
  11.         ReDim arr13(1 To UBound(ARR2), 1 To UBound(ARR2, 2))
  12.         For I = 1 To UBound(ARR2)
  13.             M = 0
  14.             For J = 1 To UBound(ARR2, 2)
  15.                 y = False
  16.                 For p = 2 To UBound(Arr1)
  17.                     For q = 1 To UBound(Arr1, 2)
  18.                         If ARR2(I, J) = Arr1(p, q) Then
  19.                             y = True
  20.                             ARR11(I, J) = Arr1(1, q)
  21.                             Exit For
  22.                         End If
  23.                     Next q
  24.                     If y = True Then Exit For
  25.                 Next p
  26.                 If Not D.Exists(ARR11(I, J)) Then
  27.                     M = M + 1
  28.                     D(ARR11(I, J)) = M
  29.                     ARR12(I, M) = ARR11(I, J)
  30.                     arr13(I, M) = Asc(ARR12(I, M)) - 64
  31.                 End If
  32.             Next J
  33.             D.RemoveAll
  34.         Next I
  35.         With .Range("K2").Resize(UBound(ARR11), UBound(ARR11, 2))
  36.             .ClearContents
  37.             .Value = ARR11
  38.         End With
  39.         With .Range("S2").Resize(UBound(ARR12), UBound(ARR12, 2))
  40.             .ClearContents
  41.             .Value = ARR12
  42.         End With
  43.         With .Range("AA2").Resize(UBound(arr13), UBound(arr13, 2))
  44.             .ClearContents
  45.             .Value = arr13
  46.         End With
  47.     End With

  48. End Sub
  49. Sub 清空()
  50.     With Sheets("分析")
  51.         .Range("K2:Q65536").ClearContents
  52.         .Range("S2:Y65536").ClearContents
  53.         .Range("AA2:AG65536").ClearContents
  54.     End With
  55. End Sub
复制代码
附件1-2-1.rar (48.71 KB, 下载次数: 2)
回复

使用道具 举报

 楼主| 发表于 2013-2-21 18:45 | 显示全部楼层
那么的帅 发表于 2013-2-20 00:24

帅老师,非常感谢您!~谢谢!~只是不能再设置为最佳答案了!~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 22:08 , Processed in 0.433397 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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