我目前正在使用以下代码填充表单中的ListBox:
'Populate In-Form Table
With ListBox_InFormTable
.ColumnCount = 4
.ColumnWidths = "100;100;100;50"
.RowSource = ws.Range("MasterDataTable").SpecialCells(xlCellTypeVisible).Address
End With
但是,我还会主动过滤列表框中显示的内容以及表单中的其他字段。这工作正常,除非我过滤掉所有结果。而不是得到一个错误,指出:"没有找到细胞。"我只是将表格中的表格留空。
任何帮助都会非常感激,我现在已经对这个问题喋喋不休了。
谢谢!
答案 0 :(得分:1)
你可以试试这样的......
Dim n As Long
With ListBox_InFormTable
.ColumnCount = 4
.ColumnWidths = "100;100;100;50"
On Error Resume Next
n = ws.Range("MasterDataTable").SpecialCells(xlCellTypeVisible).Rows.Count
On Error GoTo 0
If n > 0 Then
.RowSource = ws.Range("MasterDataTable").SpecialCells(xlCellTypeVisible).Address
End If
End With
如果您要过滤Excel表格,您可以将过滤后的行计算如下...
Dim n As Long
With ListBox_InFormTable
.ColumnCount = 4
.ColumnWidths = "100;100;100;50"
On Error Resume Next
n = ActiveSheet.ListObjects("MasterDataTable").Range.Resize(, 1).SpecialCells(xlCellTypeVisible).Count
On Error GoTo 0
If n > 0 Then
.RowSource = ws.Range("MasterDataTable").SpecialCells(xlCellTypeVisible).Address
End If
End With
End Sub