好的,所以我正在按照特定条件过滤一张名为“Data”的表格:
Sub Filter_Offene()
Sheets("Data").Range("A:R").AutoFilter Field:=18, Criteria1:="WAHR"
End Sub
接下来,我想将筛选后的表格放入列表框中。 我的问题是,行数可能会变化,所以我认为可以尝试通过执行此单元格查找例程来列出筛选表格的“结尾”:
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
不幸的是,这也包括“隐藏”行,所以在我的示例中它没有计算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
但是这在筛选后的数据中将无法工作。
SpecialCells(xlCellTypeVisible)
范围在大多数情况下是不连续的。因此,为了获得所需内容,还需要说明如何加载它。是全部筛选范围,还是仅一列中的值?您想将其链接到一个范围,还是分别加载项目?然后,必须将区域范围限制为最后一个单元格,而不是所有列... - FaneDuru