Excel 保留前11行的VBA代码
我想在每次过滤数据并删除剩余的杂波后保留前11行(前10行加上标题)。有人能帮我吗Excel 保留前11行的VBA代码,excel,vba,Excel,Vba,我想在每次过滤数据并删除剩余的杂波后保留前11行(前10行加上标题)。有人能帮我吗 sub macro() ....... ....... ........ LastRow = Cells(Rows.Count, 1).End(xlUp).Row Worksheets("Top10").Range("B1").AutoFilter field:=2, Criteria1:="fiter1", VisibleDropDown:=True Range(
sub macro()
.......
.......
........
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Top10").Range("B1").AutoFilter field:=2, Criteria1:="fiter1", VisibleDropDown:=True
Range("A2:J" & LastRow).Sort Key1:=Range("J2"), Order1:=xlAscending
Range("A12:J" & LastRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Worksheets("Top10_WO").Range("B1").AutoFilter field:=2, Criteria1:="fiter2", VisibleDropDown:=True
Range("A2:J" & LastRow).Sort Key1:=Range("J2"), Order1:=xlAscending
Range("A22:J" & LastRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Worksheets("Top10_WO").Range("B1").AutoFilter field:=2, Criteria1:="fiter3", VisibleDropDown:=True
Range("A2:J" & LastRow).Sort Key1:=Range("J2"), Order1:=xlAscending
Range("A32:J" & LastRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete
.....
....
....(upto filter28)
目前我有这段代码,但这是不灵活的,因为我的过滤数据范围将是动态的。所以我想要一个代码,它保留前10行和标题,并删除每个过滤数据的剩余所有行(过滤器1到过滤器28)
提前感谢我很难将这段代码概念化,因为每次您似乎都在覆盖现有数据。很可能,我很难想象你的数据会是什么样子,这样就可以了 这就是说,如果我从字面上理解你的代码,并假设它按照你的预期运行,但你不想硬编码过滤器的每个迭代,那么对于所有28个过滤器来说,这段代码将有效地替代你上面所做的
Sub macro()
Dim ws, sorts As Worksheet
Dim LastRow, filter, nextRow As Long
Dim sortRange As Range
Set ws = Worksheets("Top10_WO")
Set sorts = New Worksheet
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
nextRow = 12
For filter = 1 To 28
ws.Range("B1").AutoFilter field:=2, Criteria1:="fiter" & filter, VisibleDropDown:=True
sortRange.Sort Key1:=Range("J2"), Order1:=xlAscending
Range("A" & nextRow & ":J" & LastRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete
nextRow = nextRow + 10
Next filter
End Sub
您是否在Windows上使用Excel作为可以使用SQL来解决此问题的工具?非常感谢HAMBONE。您的代码似乎对我有用。我会检查一下……但在我的代码过滤器中,1到28意味着它可能是人名或城市名等……在这种情况下,该怎么办???我想我可以把所有的名字都分配给那些过滤器ryt???…比如filter1=personA filter2=personB等等…需要你的帮助…再次感谢你,你回复我很快,我想最简单的方法可能是在另一个工作表中列出所有这些。然后,您可以在工作表中定义筛选条件的单元格中循环,而不是循环1-28。这有意义吗?