作者:绿色风
分类:
时间:2022-08-18
浏览:121
楼主 xmyjk |
Q:对工作簿中的“一期发电量”工作表进行筛选,筛选条件是,“风速大于等于3,发电量等于零;风速等于0,发电量等于零”。两个条件满足其中之一,就筛选出结果。 表的结构非常复杂,需将筛选出来的数据独立存放,非上色。
A:- Option Explicit
- Sub test()
- Dim sh As Worksheet
- Application.ScreenUpdating = False
- Application.DisplayAlerts = False
- On Error Resume Next
- If Not (Sheets("temp") Is Nothing) Then Sheets("temp").Delete
- Set sh = Sheets.Add(after:=Sheets("一期发电量")): sh.Name = "temp"
- Sheets("一期发电量").[a1].CurrentRegion.Offset(1).Copy
- sh.[a1].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, Transpose:=True
-
- Dim RngS As Range, Rng As Range, R As Range
-
- If sh.Cells(30, 2).Value <> "" Then sh.Cells(30, 2).CurrentRegion.Clear
- Set RngS = sh.Range(sh.Cells(2, 1), sh.Cells(2, sh.[iv2].End(xlToLeft).Column)).Find("风 速", LookAt:=xlPart)
- If Not RngS Is Nothing Then
- Set Rng = RngS
- Do
- With sh.Range(Rng, sh.Cells(Rng.End(xlDown).Row, Rng.Offset(, 1).Column))
- .AutoFilter
- .AutoFilter Field:=2, Criteria1:="=0"
- .AutoFilter Field:=1, Criteria1:=">=3", Operator:=xlOr, Criteria2:="=0"
- .SpecialCells(xlCellTypeVisible).Copy sh.Cells(30, Rng.Column)
- .AutoFilter
- End With
- Set Rng = sh.Range(sh.Cells(2, 1), sh.Cells(2, sh.[iv2].End(xlToLeft).Column)).FindNext(Rng)
- Loop While Rng.Address <> RngS.Address
- End If
- sh.[b30].Select
- sh.[b30].CurrentRegion.Copy
- If Sheets("一期发电量").[ab3].Value <> "" Then Sheets("一期发电量").[ab3].CurrentRegion.Clear
- Sheets("一期发电量").[ab3].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, Transpose:=True
- sh.Delete
- Sheets("一期发电量").Activate
-
- Application.DisplayAlerts = True
- Application.ScreenUpdating = True
- [ab3].Select
- 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总版主之一