我有代碼查找「!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,真的很酷 –