Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 兰色幻想

[练习题] 已结束:抢3(2012-4-1)

  [复制链接]
发表于 2012-4-1 22:01 | 显示全部楼层
C10: chrissha
抢3.rar (7.21 KB, 下载次数: 11)

点评

正确,+3分  发表于 2012-4-1 22:03

评分

参与人数 1 +3 金币 +3 收起 理由
兰色幻想 + 3 + 3 赞一个!

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2012-4-1 22:02 | 显示全部楼层
Sub sx()
Dim arr, st$, n%, rg As Range, ar(1 To 5), rgg As Range, x%
st = [b2]
    arr = Application.Transpose(Range("A4:A6"))
    ReDim Preserve arr(1 To 5)
    arr(4) = "学历"
    arr(5) = "性别"
If Application.WorksheetFunction.Match(st, Range("K1:k" & Range("K" & Rows.Count).End(xlUp).Row), 0) > 0 Then
    n = Application.WorksheetFunction.Match(st, Range("K1:k" & Range("K" & Rows.Count).End(xlUp).Row), 0)
   Set rg = Range("K" & n & ":N" & Range("K" & n).End(xlDown).Row)
    For x = 1 To 5
        For Each rgg In rg
            If arr(x) = rgg Then
                ar(x) = Cells(rgg.Row, rgg.Column + 1)
                Exit For
            End If
        Next rgg
    Next x
End If
[b4] = ar(1)
[b5] = ar(2)
[b6] = ar(3)
[d4] = ar(4)
[d5] = ar(5)
End Sub

抢3.rar

10.04 KB, 下载次数: 10

点评

结果不正确,请看看动画效果。在本版  发表于 2012-4-1 22:04
回复

使用道具 举报

发表于 2012-4-1 22:04 | 显示全部楼层
B19-yl_li
终于理解题意了
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim j As Integer
    If Target.Address = "$B$2" Then
        Application.EnableEvents = False
        i = WorksheetFunction.Match(Target.Value, Range("k:k"), 0)
        j = Range("k" & i).End(xlDown).Row
        Range("a4:d" & Range("a65536").End(xlUp).Row).Clear
        Range("K" & i + 1 & ":n" & j).Copy Range("a4")
        Application.EnableEvents = True
    End If
End Sub

抢3.rar (9.35 KB, 下载次数: 13)

点评

正确,+2分  发表于 2012-4-1 22:06

评分

参与人数 1 +2 金币 +2 收起 理由
兰色幻想 + 2 + 2 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2012-4-1 22:04 | 显示全部楼层

A23-我不知道呀

本帖最后由 我不知道呀 于 2012-4-1 23:00 编辑

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Dim i As Integer
    Dim x As Integer
    Range("a4:d8").Clear
    With Worksheets(1).Range("k2:n36")
        Set c = .Find(Cells(2, 2), LookIn:=xlValues)
        If Not c Is Nothing Then
            x = Range(c.Address).End(xlDown).Row
            y = Range(c.Address).Row
            Range("a4").Resize(x - y, 4) = Range(c.Address).Offset(1, 0).Resize(x - y, 4).Value
        End If
    End With
    Application.EnableEvents = True
End Sub

抢3.rar

8.7 KB, 下载次数: 10

评分

参与人数 1 +2 金币 +2 收起 理由
兰色幻想 + 2 + 2

查看全部评分

回复

使用道具 举报

发表于 2012-4-1 22:10 | 显示全部楼层
本帖最后由 我不知道呀 于 2012-4-1 22:11 编辑

兰校长,我刚看完你上传的动画,这次重做一次

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Dim i As Integer
    Dim x As Integer
    Range("a4:d8").Clear
    With Worksheets(1).Range("k2:n36")
        Set c = .Find(Cells(2, 2), LookIn:=xlValues)
        If Not c Is Nothing Then
            x = Range(c.Address).End(xlDown).Row
            y = Range(c.Address).Row
            Range(c.Address).Resize(x - y, 4).Copy Destination:=Range("a4")     
        End If
    End With
    Application.EnableEvents = True
End Sub

抢3.rar

8.59 KB, 下载次数: 2

回复

使用道具 举报

发表于 2012-4-1 22:12 | 显示全部楼层
Sub sx()
Dim st$, rg As Range, n%
st = [b2]
Range("A4").CurrentRegion.Delete Shift:=xlUp
If Application.WorksheetFunction.Match(st, Range("K1:k" & Range("K" & Rows.Count).End(xlUp).Row), 0) > 0 Then
    n = Application.WorksheetFunction.Match(st, Range("K1:k" & Range("K" & Rows.Count).End(xlUp).Row), 0)
   Set rg = Range("K" & n & ":N" & Range("K" & n).End(xlDown).Row)
   rg.Copy [a4]
End If
End Sub

抢3.rar

9.35 KB, 下载次数: 11

回复

使用道具 举报

发表于 2012-4-1 22:13 | 显示全部楼层
抢3.zip (10.03 KB, 下载次数: 13)

评分

参与人数 1 +1 金币 +1 收起 理由
兰色幻想 + 1 + 1

查看全部评分

回复

使用道具 举报

发表于 2012-4-1 22:17 | 显示全部楼层
F10:gaoshuichang1
抢3.zip (7.59 KB, 下载次数: 2)
回复

使用道具 举报

发表于 2012-4-1 22:17 | 显示全部楼层
A09:byhdch

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$B$2" Then
        Dim j As Integer
        j = Application.Match(Range("b2"), Range("k:k"), 0)
        Range("a3:d7").Clear
        Cells(j, 11).CurrentRegion.Select
        Selection.Copy
        Range("a3").Select
        ActiveSheet.Paste
    End If
End Sub

抢3.rar (7.2 KB, 下载次数: 2)
回复

使用道具 举报

发表于 2012-4-1 22:20 | 显示全部楼层
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x, y
If Target.Address = "$B$2" Then
Range("a4:d8").ClearContents
    x = Application.Match(Range("b2"), Range("k2:k32"), 0)
    y = Application.CountA(Range(Range("k" & x + 1), Range("k" & x + 4)))
    Range("k" & x + 2).Resize(y, 4).Select
    Selection.Copy
    Range("A4").Select
    ActiveSheet.Paste
    End If
End Sub
抢3.rar (10.48 KB, 下载次数: 2)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 01:58 , Processed in 0.381765 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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