Hi,
mit dem Backgrouondworker lese ich eine Excel Tebelle aus. Wenn in eine Zelle leer ist dann soll er einfach diese übersprigen aber stattdessen kommt eine Fehlermeldung
Eine Ausnahme vom Typ "System.NullReferenceException" ist in preEKFO2017.exe aufgetreten, doch wurde diese im Benutzercode nicht verarbeitet.
Code
Bei
wird der Fehler ausgelöst
Ich versteh diesen Fehler nicht. Ich prüfe doch mit dem Code ob dieser Nothing ist und wenn dies True ist soll er einfach diese Zelle überspringen
Kann mit einer bitte helfen, Google gibt mir leider keine Lösung
Sorry - 2 Sekunden länger nachgedacht und Lösung gefunden.
Ich habe das Objekt vor der Prüfung mit ".Replace(" ","")" bearbeitet obwohl es Nothing war, daher der Fehler.
Für alle die es Interessiert nachfolgend der korrigierte Code
mit dem Backgrouondworker lese ich eine Excel Tebelle aus. Wenn in eine Zelle leer ist dann soll er einfach diese übersprigen aber stattdessen kommt eine Fehlermeldung
Eine Ausnahme vom Typ "System.NullReferenceException" ist in preEKFO2017.exe aufgetreten, doch wurde diese im Benutzercode nicht verarbeitet.
Code
VB.NET-Quellcode
- Private Sub bgw_hl_analyse_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles bgw_hl_analyse.ProgressChanged
- Dim int_prozent As Integer = e.ProgressPercentage
- Dim Tabelle As String = e.UserState
- Dim excel_obj_null_prüfung As String = objExcel.Range(cob_mn_supl_column.Text & int_prozent).value.ToString.Replace(" ", "")
- If excel_obj_null_prüfung <> Nothing Then
- If excel_obj_null_prüfung <> "999" Then
- ' Dim item_no As String = CStr(objExcel.Range("A" & int_prozent).value).Replace(" ", "")
- Dim main_suppl As String = CStr(objExcel.Range(cob_mn_supl_column.Text & int_prozent).value)
- Dim main_suppl_price As String
- Dim main_suppl_price_RGB() As String
- For i = 0 To ary_column.Length - 1
- If objExcel.Range(ary_column(i).ToString & cob_supl_row.Text).value <> Nothing Then
- If objExcel.Range(ary_column(i).ToString & cob_supl_row.Text).value.ToString.Replace(" ", "") = main_suppl.Replace(" ", "") Then
- main_suppl_price = objExcel.Range(ary_column(i).ToString & int_prozent).value
- main_suppl_price_RGB = RGBWerte(objExcel.range(ary_column(i).ToString & int_prozent)).ToString.Split(";")
- Dim str_transformiert As String = objExcel.range("A" & int_prozent).value.ToString.Replace(" ", "") & ";" & main_suppl & ";" & main_suppl_price & ";" & main_suppl_price_RGB(0) & ";" & main_suppl_price_RGB(1) & ";" & main_suppl_price_RGB(2)
- ListBox1.Items.Add(str_transformiert)
- txt_transformed.Text = "Transformierte Zeilen: " & ListBox1.Items.Count
- ListBox1.SelectedIndex = ListBox1.Items.Count - 1
- Exit For
- Else
- If i = ary_column.Length - 1 Then
- int_fehler += 1
- Label3.Text = "Fehler: " & int_fehler
- 'Exit For
- End If
- End If
- End If
- Next
- Else
- If objExcel.Range(cob_mn_supl_column.Text & int_prozent).value.ToString.Replace(" ", "") = "999" Then
- int_lösch += 1
- txt_löschartikel.Text = "Löschartikel: " & int_lösch
- End If
- End If
- End If
- End Sub
Bei
wird der Fehler ausgelöst
Ich versteh diesen Fehler nicht. Ich prüfe doch mit dem Code ob dieser Nothing ist und wenn dies True ist soll er einfach diese Zelle überspringen
Kann mit einer bitte helfen, Google gibt mir leider keine Lösung
Sorry - 2 Sekunden länger nachgedacht und Lösung gefunden.
Ich habe das Objekt vor der Prüfung mit ".Replace(" ","")" bearbeitet obwohl es Nothing war, daher der Fehler.
Für alle die es Interessiert nachfolgend der korrigierte Code
VB.NET-Quellcode
- Private Sub bgw_hl_analyse_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles bgw_hl_analyse.ProgressChanged
- Dim int_prozent As Integer = e.ProgressPercentage
- Dim Tabelle As String = e.UserState
- ' Dim excel_obj_null_prüfung As String = objExcel.Range(cob_mn_supl_column.Text & int_prozent).value.ToString.Replace(" ", "")
- If objExcel.Range(cob_mn_supl_column.Text & int_prozent).value <> Nothing Then
- If objExcel.Range(cob_mn_supl_column.Text & int_prozent).value.ToString.Replace(" ", "") <> "999" Then
- ' Dim item_no As String = CStr(objExcel.Range("A" & int_prozent).value).Replace(" ", "")
- Dim main_suppl As String = CStr(objExcel.Range(cob_mn_supl_column.Text & int_prozent).value)
- Dim main_suppl_price As String
- Dim main_suppl_price_RGB() As String
- For i = 0 To ary_column.Length - 1
- If objExcel.Range(ary_column(i).ToString & cob_supl_row.Text).value <> Nothing Then
- If objExcel.Range(ary_column(i).ToString & cob_supl_row.Text).value.ToString.Replace(" ", "") = main_suppl.Replace(" ", "") Then
- main_suppl_price = objExcel.Range(ary_column(i).ToString & int_prozent).value
- main_suppl_price_RGB = RGBWerte(objExcel.range(ary_column(i).ToString & int_prozent)).ToString.Split(";")
- Dim str_transformiert As String = objExcel.range("A" & int_prozent).value.ToString.Replace(" ", "") & ";" & main_suppl & ";" & main_suppl_price & ";" & main_suppl_price_RGB(0) & ";" & main_suppl_price_RGB(1) & ";" & main_suppl_price_RGB(2)
- ListBox1.Items.Add(str_transformiert)
- txt_transformed.Text = "Transformierte Zeilen: " & ListBox1.Items.Count
- ListBox1.SelectedIndex = ListBox1.Items.Count - 1
- Exit For
- Else
- If i = ary_column.Length - 1 Then
- int_fehler += 1
- Label3.Text = "Fehler: " & int_fehler
- 'Exit For
- End If
- End If
- End If
- Next
- Else
- If objExcel.Range(cob_mn_supl_column.Text & int_prozent).value.ToString.Replace(" ", "") = "999" Then
- int_lösch += 1
- txt_löschartikel.Text = "Löschartikel: " & int_lösch
- End If
- End If
- End If
- End Sub
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „AbsolutCF“ ()