Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
123
返回列表 发新帖

[通知] 统计VBA学习小组正式组的积分帖之作业上交贴(第17周)

  [复制链接]
发表于 2012-5-12 23:24 | 显示全部楼层
[/hide]
校长辛苦了!
[hide]

第14课作业.rar

12.35 KB, 下载次数: 18

评分

参与人数 1金币 +10 收起 理由
兰色幻想 + 10 答案正确

查看全部评分

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

使用道具 举报

发表于 2012-5-13 22:41 | 显示全部楼层
a组学委:qushui
  1. Sub 筛选()
  2.     Dim arr, brr(), st As Worksheet
  3.     Dim i&, j&, k&, pm$
  4.     pm = Sheets("查询").[b2]
  5.     For Each st In Sheets
  6.         If st.Name Like "[ABC]" & "店" Then
  7.             arr = st.Range("a1").CurrentRegion.Value
  8.             For i = 2 To UBound(arr)
  9.                 If arr(i, 2) = pm Then
  10.                     k = k + 1
  11.                     ReDim Preserve brr(1 To 4, 1 To k)
  12.                     brr(1, k) = st.Name
  13.                     brr(2, k) = arr(i, 1)
  14.                     brr(3, k) = pm
  15.                     brr(4, k) = arr(i, 3)
  16.                 End If
  17.             Next i
  18.             Erase arr
  19.         End If
  20.     Next st
  21.     With Sheets("查询")
  22.         .Range("a5:d" & .[a65536].End(3).Row).ClearContents
  23.         .[a5].Resize(k, 4) = Application.Transpose(brr)
  24.     End With
  25. End Sub
复制代码

a组学委(qushui)第14课作业.zip

12.78 KB, 下载次数: 9

评分

参与人数 1金币 +10 收起 理由
兰色幻想 + 10 答案正确

查看全部评分

回复

使用道具 举报

发表于 2012-5-14 21:53 | 显示全部楼层
第14课作业.rar (9.62 KB, 下载次数: 14)

评分

参与人数 1金币 +8 收起 理由
兰色幻想 + 8 答案正确,答案还可以更节省

查看全部评分

回复

使用道具 举报

发表于 2012-5-14 22:07 | 显示全部楼层
A03:无聊的疯子

  1. Sub 筛选()
  2. Dim Sh As Worksheet, Arr, Brr(1 To 100, 1 To 4)
  3. Dim X As Integer, H As Integer, S As String
  4.   S = Sheets("查询").Range("B2").Value
  5.   For Each Sh In Worksheets
  6.     If Sh.Name <> "查询" Then
  7.       Arr = Sh.UsedRange
  8.       For X = 2 To UBound(Arr)
  9.         If Arr(X, 2) = S Then
  10.           H = H + 1
  11.           Brr(H, 1) = Sh.Name
  12.           Brr(H, 2) = Arr(X, 1)
  13.           Brr(H, 3) = Arr(X, 2)
  14.           Brr(H, 4) = Arr(X, 3)
  15.         End If
  16.       Next
  17.     End If
  18.   Next
  19.   With Sheets("查询").Range("A5:D100")
  20.     .ClearContents
  21.     .Value = Brr
  22.   End With
  23. End Sub

复制代码

评分

参与人数 1金币 +10 收起 理由
兰色幻想 + 10 答案正确

查看全部评分

回复

使用道具 举报

发表于 2012-5-15 11:17 | 显示全部楼层
C09:sliang28
  1. Sub 筛选()
  2. Dim sht As Worksheet
  3. Dim data() As Variant
  4. Dim n, k, i As Long
  5. Dim last_n As Long
  6. Dim list(1 To 99999, 1 To 4) As Variant
  7. Dim pro As String

  8. Worksheets("查询").[A5].Resize(1000, 4).ClearContents

  9. pro = Worksheets("查询").[B2]

  10. last_n = Worksheets.Count

  11. ReDim data(1 To last_n) As Variant

  12. k = 0

  13. For Each sht In Worksheets
  14.     If sht.Name <> "查询" Then
  15.         n = sht.[A1].End(xlDown).Row
  16.         data(sht.Index) = sht.Range("A2:C" & n)
  17.         For i = 1 To UBound(data(sht.Index))
  18.             If data(sht.Index)(i, 2) = pro Then
  19.                 k = k + 1
  20.                 list(k, 1) = sht.Name
  21.                 list(k, 2) = data(sht.Index)(i, 1)
  22.                 list(k, 3) = pro
  23.                 list(k, 4) = data(sht.Index)(i, 3)
  24.             End If
  25.         Next
  26.     End If
  27. Next

  28. Worksheets("查询").[A5].Resize(k, 4) = list

  29. MsgBox pro & "商品查询结束。"


  30. End Sub
复制代码

第14课作业.xls

46 KB, 下载次数: 8

回复

使用道具 举报

发表于 2012-5-15 12:05 | 显示全部楼层
D09 zjyxp
不会做,重在参与学习,恳请校长指导!
  1. Sub 筛选()
  2.     Dim arr, arr1(1 To 100, 1 To 3)
  3.     Dim x As Integer, k As Integer
  4.      Sheets("A店").Range("a1:c8").Copy Sheets("查询").Range("m1")
  5.      Sheets("B店").Range("a2:c15").Copy Sheets("查询").Range("m9")
  6.      Sheets("C店").Range("a2:c15").Copy Sheets("查询").Range("m23")
  7.         arr = Range("m1:o36")
  8.            For x = 2 To 36
  9.            If arr(x, 2) = Range("b2").Value Then
  10.                 k = k + 1
  11.                 arr1(k, 1) = arr(x, 1)
  12.                 arr1(k, 2) = arr(x, 2)
  13.                 arr1(k, 3) = arr(x, 3)
  14.                  End If
  15.             Next
  16.         Range("b5").Resize(k, 3) = arr1
  17.         Range("m1:o36").ClearContents
  18. End Sub
复制代码
回复

使用道具 举报

发表于 2012-5-15 12:14 | 显示全部楼层
第14课作业.rar (11.99 KB, 下载次数: 4)
回复

使用道具 举报

发表于 2012-5-15 13:28 | 显示全部楼层
Sub 筛选()
  Dim x As Long, y As Long, a As Long, b As Long, c As Long, d As Long, e As Long, f As Long, g As Long, h As Long, i As String
  Dim arr
  Dim arr1
  Dim arr2
  Application.ScreenUpdating = False
  f = Sheets(1).Range("a65536").End(xlUp).Row + Sheets(2).Range("a65536").End(xlUp).Row + Sheets(3).Range("a65536").End(xlUp).Row - 3
  ReDim arr(1 To f, 1 To 4)
  i = Sheets("查询").Range("B2")
a = Sheets.Count
  For b = 1 To a - 1
  Sheets(b).Select
  c = Range("a65536").End(xlUp).Row
   arr1 = Range("a2:c" & c)
  For x = 1 To c - 1
  d = d + 1
  arr(d, 1) = Sheets(b).Name
    For y = 1 To 3
       arr(d, y + 1) = arr1(x, y)
    Next y
  Next x
  Next b
  ReDim arr2(1 To UBound(arr), 1 To 4)
For e = 1 To UBound(arr)
If arr(e, 3) = i Then
g = g + 1
For h = 1 To 4
arr2(g, h) = arr(e, h)
Next
End If
Next
Sheets("查询").Range("A5").Resize(UBound(arr2), 4) = arr2
Sheets("查询").Select
  Application.ScreenUpdating = True
End Sub
14课作业-B06-liuho1.zip (13.48 KB, 下载次数: 5)
回复

使用道具 举报

发表于 2012-5-15 14:54 | 显示全部楼层

复制代码

Sub 筛选()
Dim arr, arr1()
Dim x%, y%, r%
Dim str$, nstr$
Dim sh As Worksheet
str = Sheets("查询").Range("B2").Value
For x = 1 To 3
    Set sh = Sheets(x)
    nstr = sh.Name
    arr = sh.Range("a2:c" & sh.[a65536].End(xlUp).Row)
    For y = 1 To UBound(arr)
      If arr(y, 2) = str Then
        r = r + 1
        ReDim Preserve arr1(1 To 4, 1 To r)
        arr1(1, r) = nstr
        arr1(2, r) = arr(y, 1)
        arr1(3, r) = arr(y, 2)
        arr1(4, r) = arr(y, 3)
      End If
  Next: Next
  
  Range("a5:d" & [a65536].End(3).Row).ClearContents
  Range("a5").Resize(r, 4) = Application.Transpose(arr1)
End Sub

第14课作业.rar

8.79 KB, 下载次数: 4

回复

使用道具 举报

发表于 2012-5-15 16:32 | 显示全部楼层
libenwen2011 发表于 2012-5-10 15:17
16组:libenwen2011   (UID: 514207)

Sub 筛选()

cO(∩_∩)O谢谢老师。                                                                     
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-9 12:57 , Processed in 0.247754 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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