Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fehlerhafte Werte im Array ersetzen

Fehlerhafte Werte im Array ersetzen
22.09.2014 14:58:18
Mike
Hallo Zusammen,
mit nachfolgendem Befehl fülle ich mein Array arrMasterdata:
arrMasterdata = wbMasterdata.Worksheets(sTab).Range("A1:" & s)
Das klappt gut und noch dazu sehr schnell.
Mit den Daten des Arrays fülle ich dann ein Listview:
[CODE]

Private Sub DatenLesenUpdate(sFilter As String)
Dim lRow As Long, iCol As Integer
Dim LI As ListItem, LSI As ListSubItem
On Error GoTo DatenLesenUpdate_Error
If sFilter  "" Then sFilter = "*" & sFilter & "*"
With Me.lstMaterials
.ListItems.Clear
If sFilter  "" Then
For lRow = 1 To UBound(arrMasterdata)
If UCase(arrMasterdata(lRow, 2)) Like UCase(sFilter) Then
Set LI = .ListItems.Add(, "x" & lRow, arrMasterdata(lRow, 1))
For iCol = 2 To 3
Set LSI = LI.ListSubItems.Add(, , arrMasterdata(lRow, iCol))
Next iCol
End If
Next lRow
Else
For lRow = 1 To UBound(arrMasterdata)
Set LI = .ListItems.Add(, "x" & lRow, arrMasterdata(lRow, 1))
For iCol = 2 To 3
Set LSI = LI.ListSubItems.Add(, , arrMasterdata(lRow, iCol))
Next iCol
Next lRow
End If
.ListItems.Remove (1)
Me.lblMaterialsCount.Caption = Format(.ListItems.Count, "#,##0") & " Items found for '" &  _
_
Me.txtMaterialsuche & "'"
End With
On Error GoTo 0
Exit Sub
DatenLesenUpdate_Error:
Select Case Err.Number
Case 13
' #NV in Quelldatei
Set LSI = LI.ListSubItems.Add(, , "#NV")
Resume Next
Case 35600
' keine Überschrift in lv
Resume Next
Case Else
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure  _
DatenLesenUpdate of Formular frmMaterialsuche"
End Select
End Sub

[/CODE]
Leider kann ich nicht alle fehlerhaften Zellinhalte im Array (beginnt mit '#') abfangen, so erhalte ich manchmal einen Wert 'Fehler 2042'...
Vielen Dank für Eure Hilfe.
Mike

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlerhafte Werte im Array ersetzen
22.09.2014 15:18:44
Daniel
Hi
Fehlerwerte bereiten bei direkten Zellvergleichen Schwierigkeiten.
Du kannst die Fehlerwerte in der Schleife mit folgender Prüfung überspringen (sollte natürlich als erste erfolgen:
If VarType(arrMasterdata(lRow, 2))  vbError Then
'--- hier dann der Weitere Code für den Fall, dass im Array ein normaler Wert steht
End If
Gruß Daniel

Anzeige
AW: Fehlerhafte Werte im Array ersetzen
22.09.2014 16:42:49
Mike
Hi Daniel,
super, vielen Dank für den Tipp.
Grüsse, Mike
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige