Excel精英培训网

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

[已解决]帮我看看,代码错在哪里!

[复制链接]
发表于 2010-4-22 16:36 | 显示全部楼层 |阅读模式

帮我看看,代码错在哪里!

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$M$7" Then
    Sheets(Target.Value).Range("A:L").Copy Sheets("b").Range("A1")

ElseIf Target.Address = "$J$2" Then
    Dim str As String
    Dim i As Integer
    Dim Sh As Worksheet
        Sheets("b").Columns(2).Clear
        str = [j2].Value
        For Each Sh In Worksheets
            If InStr(Sh.Name, str) Then
                i = i + 1
               Sheets("b").Cells(i, 2) = Sh.Name
            End If
        Next
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Activate()
    Dim Dic As Object, Ary, k%
    Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("b")
    Ary = .Range("A4", .[A65536].End(3))
End With
    For k = 1 To UBound(Ary)
        Dic(Ary(k, 1)) = ""
    Next
With Sheets("b")
    .[R:R].Clear
    .[R4].Resize(Dic.Count).Value = Application.Transpose(Dic.keys)
     .[R4].Resize(Dic.Count).Sort key1:=.[R4], order1:=1, Header:=xlNo
End With
    Dic.RemoveAll
End Sub

 

LS7NKwAx.rar (13.1 KB, 下载次数: 0)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2010-4-22 17:10 | 显示全部楼层

这里为何要清空啊?

 For k = 1 To UBound(Ary)
        Dic(Ary(k, 1)) = ""
 Next

回复

使用道具 举报

发表于 2010-4-22 17:27 | 显示全部楼层    本楼为最佳答案   

Ary = .Range("c4", .[c65536].End(3))
回复

使用道具 举报

 楼主| 发表于 2010-4-22 18:27 | 显示全部楼层

感谢以上两位老师,我希望的是If Target.Address = "$M$7" Then时,代码中的两个事件能同时发生
回复

使用道具 举报

发表于 2010-4-22 18:32 | 显示全部楼层

楼主的意思是在CHANGE中调用ACTIVATE过程??
回复

使用道具 举报

发表于 2010-4-22 18:37 | 显示全部楼层

先说一下你的出错信息,目标要先一致,哈哈。

我发现的是,“sort”方法不能正常执行。

你收的两个事件同时执行是另外一回事情,可以再聊。

回复

使用道具 举报

 楼主| 发表于 2010-4-22 20:13 | 显示全部楼层

完成了,感谢各位老师
回复

使用道具 举报

 楼主| 发表于 2010-4-22 20:13 | 显示全部楼层

完成了,感谢各位老师
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 04:00 , Processed in 0.390318 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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