相关疑难解决方法(0)

过滤数据的行数

我正在使用下面的代码来获取VBA中已过滤数据行的计数,但在获取计数时,它会显示运行时错误:

"所需对象".

有些人可以告诉我需要哪些更改?

Set rnData = .UsedRange

With rnData
    .AutoFilter Field:=327, Criteria1:=Mid(provarr(q), 1, 2)
    .Select
    .AutoFilter Field:=328, Criteria1:=Mid(provarr(q), 3, 7)
    .Select
    .AutoFilter Field:=330, Criteria1:=Mid(provarr(q), 10, 2)
    .Select
    .AutoFilter Field:=331, Criteria1:=Mid(provarr(q), 12, 2)
    .Select

     Rowz = .AutoFilter.Range.SpecialCells(xlCellTypeVisible).Rows.count

     ....
End With
Run Code Online (Sandbox Code Playgroud)

excel vba

16
推荐指数
2
解决办法
13万
查看次数

用于填充列表框的过滤数据数组

好的,我正在按标准过滤工作表(“数据”):

Sub Filter_Offene()
    Sheets("Data").Range("A:R").AutoFilter Field:=18, Criteria1:="WAHR"
End Sub

Run Code Online (Sandbox Code Playgroud)

然后,我想将过滤表填充到列表框我的问题是,行数可能会有所不同,所以我想我可以尝试通过执行以下 cells.find 例程来列出过滤表“结束”的位置:

Dim lRow As Long
Dim lCol As Long

    lRow = ThisWorkbook.Sheets("Data").Cells.Find(What:="*", _
                    After:=Range("A1"), _
                    LookAt:=xlPart, _
                    LookIn:=xlFormulas, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlPrevious, _
                    MatchCase:=False).Row

lRow = lRow + 1
Run Code Online (Sandbox Code Playgroud)

不幸的是,这也计算“隐藏”行,因此在我的示例中,它不计算 2,而是计算 7。我.Range.SpecialCells(xlCellTypeVisible)以前使用过,但它似乎不适用于上面的 cells.find。有人知道如何计算可见(=过滤)表,然后将其放入列表框中吗?

编辑:我像这样填充列表框(未过滤):

Dim lastrow As Long
With Sheets("Data")
    lastrow = .Cells(.Rows.Count, "R").End(xlUp).Row
End With

With Offene_PZ_Form.Offene_PZ
.ColumnCount = 18
.ColumnWidths = "0;80;0;100;100;0;50;50;80;50;0;0;0;0;0;150;150;0"
.List = Sheets("Data").Range("A2:R" & lastrow).Value
End With
Run Code Online (Sandbox Code Playgroud)

但这不适用于过滤后的数据。

excel vba listbox

5
推荐指数
1
解决办法
5030
查看次数

标签 统计

excel ×2

vba ×2

listbox ×1