我有代码查找“!UKINADMISSIBLE”列中的“M”列。那么它将在列表框(listbox1)中显示所有选中的行具有“!UKINADMISSIBLE”。它工作正常,但如果我从工作表中删除所有“!UKINADMISSIBLE”它会给我这个错误(无法设置列表属性,无效属性值)在这行代码--->Me.ListBox1.List = arrLstBox( )--->错误 任何人都可以帮我修复它。无法设置列表属性。无效的属性值错误
Private Sub btnIUK_Click()
Dim arrLstBox()
Dim rng, FoundCell, tmpCell As Range
Dim i, j, numRows, lastColumn, lastRow As Long
Dim FirstAddress, searchFor, colWidth As String
Set rng = ActiveSheet.UsedRange
numRow = 0
With rng
lastRow = .Rows.Count
lastColumn = .Columns.Count
End With
Me.ListBox1.ColumnCount = lastColumn
Me.ListBox1.ColumnWidths = "60;70;190;40;90;90;70;80;50;60;90;120;5"
Set FoundCell = rng.Find(what:="!UKINADMISSIBLE", LookIn:=xlValues, lookat:=xlWhole)
If Not FoundCell Is Nothing Then _
FirstAddress = FoundCell.Address
Do Until FoundCell Is Nothing
Set FoundCell = rng.FindNext(after:=FoundCell)
If FoundCell.Address = FirstAddress Then
numRow = numRow + 1
Exit Do
ElseIf FoundCell.Row <> rng.FindNext(after:=FoundCell).Row Then
numRow = numRow + 1
End If
ReDim arrLstBox(1 To numRow + 1, 1 To lastColumn + 1)
Loop
Do Until FoundCell Is Nothing
For i = 1 To numRow
For j = 1 To lastColumn
If Not IsEmpty(Cells(FoundCell.Row, j).Value) Then
arrLstBox(i, j) = Cells(FoundCell.Row, j).Value
End If
Next j
Set FoundCell = rng.FindNext(after:=FoundCell)
If FoundCell.Address = FirstAddress Then _
Exit For
Next i
If FoundCell.Address = FirstAddress Then _
Exit Do
Loop
Me.ListBox1.List = arrLstBox()----->ERROR
lastRow = ListBox1.ListCount
MsgBox "Records Found = " & lastRow, vb, "Inadmissibles On UK Sectors"
End Subode here
感谢负载,真的很感激。再次感谢:) –
谢谢你Ambie,真的很酷 –