Excel精英培训网

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

[已解决]求改动代码

[复制链接]
发表于 2013-12-22 00:26 | 显示全部楼层 |阅读模式
如果输出结果没有的话为何b1,b2的数据都会清除了
sub test()
    Sheets("1").Select
    On Error Resume Next
    Dim Arr, brr, crr(), d1 As Object, d2 As Object, i As Integer, j, Cnt As Long, c As Collection
    Set d1 = CreateObject("scripting.dictionary")
    For i = 1 To 12
       Arr = Sheets(CStr(i)).Range("L3:DC700").Value
       For Each j In Arr
          d1(i & "|" & j) = d1(i & "|" & j) + 1
       Next
    Next
    Arr = d1.Keys
    brr = d1.Items
    d1.RemoveAll
    Set d2 = CreateObject("scripting.dictionary")
    For i = 0 To UBound(Arr)
       j = Split(Arr(i), "|")(1)
       d1(j & "|" & brr(i)) = d1(j & "|" & brr(i)) + 1
       If d1(j & "|" & brr(i)) > 5 Then d2(j) = ""
    Next
    Range("B3:B" & d2.Count) = Application.Transpose(d2.Keys)
End sub
最佳答案
2013-12-22 14:04
Range("B65536").End(3)(2).Resize(d2.Count, 1) = Application.Transpose(d2.Keys)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-12-22 08:03 | 显示全部楼层
本帖最后由 zjdh 于 2013-12-22 08:12 编辑

当你没有数据时,d2.Count=0,Range("B3:B" & d2.Count)=Range("B0:B3"),就填上了空值。
回复

使用道具 举报

发表于 2013-12-22 08:11 | 显示全部楼层
可在
Range("B3:B" & d2.Count) = Application.Transpose(d2.Keys)
前添加一句
If  d2.Count=0 Then Exit Sub
回复

使用道具 举报

 楼主| 发表于 2013-12-22 13:37 | 显示全部楼层
zjdh 发表于 2013-12-22 08:11
可在
Range("B3:B" & d2.Count) = Application.Transpose(d2.Keys)
前添加一句

能不能帮我把输岀位置改成b列有数据的下一格开始放,不要固定从b3开始放
回复

使用道具 举报

发表于 2013-12-22 14:04 | 显示全部楼层    本楼为最佳答案   
Range("B65536").End(3)(2).Resize(d2.Count, 1) = Application.Transpose(d2.Keys)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 09:04 , Processed in 0.626427 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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