Excel精英培训网

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

[已解决]求教:用VBA进行多条件复制

[复制链接]
发表于 2011-11-2 13:01 | 显示全部楼层 |阅读模式
附件中条件已述,谢谢大家。 Book1.rar (4.37 KB, 下载次数: 20)
发表于 2011-11-2 13:38 | 显示全部楼层
回复 c888 的帖子

启用宏,点按钮即可
现在上传不了附件,代码如下
  1. Sub TQsj()
  2. Dim arr, arr1(), str_Xm$, str_Lx$, log_Z&, x&, i&, y&, iRow&
  3. With Sheets("2")
  4. arr = .UsedRange
  5. End With
  6. With Sheets("1")
  7. str_Xm = .Range("K6")
  8. str_Lx = .Range("N6")
  9. log_Z = .Range("P6")
  10. For x = 1 To UBound(arr)
  11. If arr(x, 1) = str_Xm And arr(x, 2) = str_Lx And arr(x, 3) = log_Z Then
  12. i = i + 1
  13. ReDim Preserve arr1(1 To 14, 1 To i)
  14. For y = 1 To 14
  15. arr1(y, i) = arr(x, y)
  16. Next y
  17. End If
  18. Next x
  19. iRow = .Range("D65536").End(xlUp).Row
  20. If iRow > 9 Then
  21. .Range("D10:Q" & iRow).ClearContents
  22. .Range("D10:Q" & iRow).Borders.LineStyle = 0
  23. End If
  24. If i = 0 Then MsgBox "没有数据": Exit Sub
  25. .Range("D10").Resize(UBound(arr1, 2), UBound(arr1)) = Application.Transpose(arr1)
  26. .Range("D10").Resize(UBound(arr1, 2), UBound(arr1)).Borders.LineStyle = 1
  27. MsgBox "提取完毕,共" & i & "人"
  28. End With
  29. End Sub
复制代码


回复

使用道具 举报

发表于 2011-11-2 13:50 | 显示全部楼层    本楼为最佳答案   
筛选2.rar (10.22 KB, 下载次数: 85)

评分

参与人数 1 +10 收起 理由
macky591 + 10 学习

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 05:12 , Processed in 0.461014 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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