Excel精英培训网

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

[已解决]请教一个查找vba代码。

[复制链接]
发表于 2013-4-20 12:49 | 显示全部楼层 |阅读模式
查找某个班级的学生姓名,并复制。
例如:用vba在A列查找1.2,并把对应的姓名复制到G3往下的单元格中。
说明:各个班级已连续排列在一起,只是人数不定。如图:
1.jpg
vba条件查找并复制.rar (2.54 KB, 下载次数: 13)
发表于 2013-4-20 13:11 | 显示全部楼层
Sub tt2()
    Dim i As Integer
    Dim c As Range
    i = 3
        With Range("a2:a500")
            Set c = .Find("1.2", LookIn:=xlValues)
            If Not c Is Nothing Then
                firstAddress = c.Address
                Do
                    Cells(i, 7) = c.Offset(0, 1)
                    i = i + 1
                    Set c = .FindNext(c)
                Loop While Not c Is Nothing And c.Address <> firstAddress
            End If
        End With

End Sub

vba条件查找并复制.rar

7.49 KB, 下载次数: 7

回复

使用道具 举报

发表于 2013-4-20 14:06 | 显示全部楼层
使用高级筛选

  1. Sub cc()
  2.   Range("A2:B65536").AdvancedFilter 2, Range("E2:E3"), Range("G2"), True
  3. End Sub
复制代码
2  表示将结果Copy 到其它区域
Range("E2:E3")  为包含字段名称的条件区域  
  E2 内容"班级"
  E3 内容 "1.2"
Range("G2")  Copy到的目标单元格,该单元格中内容为要Copy出来的字段
  G2 内容"姓名"  ,则将符合条件的 姓名 Copy 过来
  G2 内容"班级"  ,则将符合条件的 班级 Copy 过来
True  表示 筛选不重复值,若姓名中有重复值,请修改为 False

示例说明:
  E2 内容"班级"
  E3 不填入任何内容
修改 G2 单元格为 班级,运行上面的代码,则提取不重复的班级
结果为 1.1,1.2,1.3,1.4
回复

使用道具 举报

发表于 2013-4-20 14:40 | 显示全部楼层    本楼为最佳答案   
字典学习中。。。
Private Sub CommandButton1_Click()
Dim i, j, arr, d
i = Range("A" & Rows.Count).End(xlUp).Row
Set d = CreateObject("Scripting.Dictionary")
arr = Range("A3:B" & i).Value
   For j = 1 To i - 2
      If arr(j, 1) = "1.2" Then d(arr(j, 2)) = arr(j, 1)
   Next
Range("G3").Resize(d.Count, 1) = Application.WorksheetFunction.Transpose(d.keys)
Set d = Nothing
End Sub
回复

使用道具 举报

 楼主| 发表于 2013-4-20 19:44 | 显示全部楼层
谢谢各位论坛老师。我觉得字典的算法要快点。
回复

使用道具 举报

发表于 2013-4-21 15:50 | 显示全部楼层
第一次被选为最佳答案,好激动!{:091:}
回复

使用道具 举报

发表于 2017-5-3 13:35 | 显示全部楼层
学习到了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 05:59 , Processed in 0.276991 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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