gpt4 book ai didi

excel - 使用 VBA 过滤后选择表中的前 n 行

转载 作者:行者123 更新时间:2023-12-04 21:39:54 24 4
gpt4 key购买 nike

似乎将过滤器应用于表格破坏了我对如何处理此问题的理解。

我有一个包含多列的表。我将过滤其中一列并在另一列上排序。之后,我想选择/复制过滤到另一个表中的特定列的前 10 行。

我可以在过滤器之前轻松做到这一点。应用过滤器后,我需要前 10 行。我没有看到如何在过滤器之后选择第 10 行。

谁能指出我解释如何做到这一点的 VBA 引用?我需要使用 SQL 来执行此操作吗?我是不是想得太多了,太复杂了?

最佳答案

在应用过滤后,以下工作将选择 F 列的前 10 个可见单元格。如果要排除标题单元格,则需要从 F2 开始。

Sub TenVisible()
Dim rng As Range
Dim rngF As Range
Dim rng10 As Range

Set rngF = Range("F:F").SpecialCells(xlCellTypeVisible)

For Each rng In Range("F:F")
If Not Intersect(rng, rngF) Is Nothing Then
If rng10 Is Nothing Then
Set rng10 = rng
Else
Set rng10 = Union(rng10, rng)
End If
If rng10.Cells.Count = 10 Then Exit For
End If
Next rng
Debug.Print rng10.Address
'.. $F$1:$F$2,$F$4:$F$5,$F$9:$F$10,$F$12,$F$20:$F$21,$F$23
rng10.Select
End Sub

以下是从 F2 向下选择的多种方法之一(假设 UsedRange 从第 1 行开始):
Set rngF = Range("F2", Cells(ActiveSheet.UsedRange.Rows.Count, _
Range("F2").Column)).SpecialCells(xlCellTypeVisible)

关于excel - 使用 VBA 过滤后选择表中的前 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18707693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com