ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何在复杂的表中(行筛选),将需要的数据单独筛选出来?

如何在复杂的表中(行筛选),将需要的数据单独筛选出来?

作者:绿色风 分类: 时间:2022-08-18 浏览:81
楼主
xmyjk
Q:对工作簿中的“一期发电量”工作表进行筛选,筛选条件是,“风速大于等于3,发电量等于零;风速等于0,发电量等于零”。两个条件满足其中之一,就筛选出结果。
  表的结构非常复杂,需将筛选出来的数据独立存放,非上色。


A:
  1. Option Explicit

  2. Sub test()
  3. Dim sh As Worksheet
  4. Application.ScreenUpdating = False
  5. Application.DisplayAlerts = False
  6. On Error Resume Next
  7. If Not (Sheets("temp") Is Nothing) Then Sheets("temp").Delete
  8. Set sh = Sheets.Add(after:=Sheets("一期发电量")): sh.Name = "temp"
  9. Sheets("一期发电量").[a1].CurrentRegion.Offset(1).Copy
  10. sh.[a1].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, Transpose:=True
  11.    
  12.     Dim RngS As Range, Rng As Range, R As Range
  13.    
  14.     If sh.Cells(30, 2).Value <> "" Then sh.Cells(30, 2).CurrentRegion.Clear
  15.     Set RngS = sh.Range(sh.Cells(2, 1), sh.Cells(2, sh.[iv2].End(xlToLeft).Column)).Find("风  速", LookAt:=xlPart)
  16.     If Not RngS Is Nothing Then
  17.         Set Rng = RngS
  18.         Do
  19.             With sh.Range(Rng, sh.Cells(Rng.End(xlDown).Row, Rng.Offset(, 1).Column))
  20.                .AutoFilter
  21.                .AutoFilter Field:=2, Criteria1:="=0"
  22.                .AutoFilter Field:=1, Criteria1:=">=3", Operator:=xlOr, Criteria2:="=0"
  23.                .SpecialCells(xlCellTypeVisible).Copy sh.Cells(30, Rng.Column)
  24.                .AutoFilter
  25.             End With
  26.             Set Rng = sh.Range(sh.Cells(2, 1), sh.Cells(2, sh.[iv2].End(xlToLeft).Column)).FindNext(Rng)
  27.         Loop While Rng.Address <> RngS.Address
  28.     End If
  29.     sh.[b30].Select
  30.     sh.[b30].CurrentRegion.Copy
  31.     If Sheets("一期发电量").[ab3].Value <> "" Then Sheets("一期发电量").[ab3].CurrentRegion.Clear
  32.     Sheets("一期发电量").[ab3].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, Transpose:=True
  33.     sh.Delete
  34.     Sheets("一期发电量").Activate
  35.    
  36.     Application.DisplayAlerts = True
  37.     Application.ScreenUpdating = True
  38.     [ab3].Select
  39. End Sub

QQ截图未命名2.jpg
 

7.4电量上报统计表.rar
2楼
亡者天下
跟着弦月学习VBA

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap