Fehlermeldung: 'Ungültige Konvertierung von der Zeichenfolge in Typ Double.

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Mad Andy.

    Fehlermeldung: 'Ungültige Konvertierung von der Zeichenfolge in Typ Double.

    Hallo,

    Es werden Spalten aus Excel eingelesen. Bei Spalten mit Buschstaben+Zahlen geht alles. Bei Spalten die nur Zahlen enthalten kommt die Fehlermeldung:"Ungültige Konvertierung von der Zeichenfolge in Typ Double." in der If-Schleife.
    Darauf habe ich iCount nicht als String sondern als double deklariert. Das lässt aber die ListView1 nicht zu.

    VB.NET-Quellcode

    1. For iCount = 1 To 60
    2. If oCell(iCount, 1).Value = "" Then 'Ungültige Konvertierung von der Zeichenfolge in Typ Double.
    3. oCell(iCount, 1).Value = "-"
    4. End If
    5. ListView1.Items(iCount).SubItems.Add(oCell(iCount, 1).Value)
    6. Next



    Gruß
    Sabine
    probiers mal so:

    VB.NET-Quellcode

    1. For iCount = 1 To 60
    2. If oCell(CInt(iCount), 1).Value = "" Then 'Ungültige Konvertierung von der Zeichenfolge in Typ Double.
    3. oCell(CInt(iCount), 1).Value = "-"
    4. End If
    5. ListView1.Items(CInt(iCount)).SubItems.Add(oCell(CInt(iCount), 1).Value)
    6. Next
    Hi,

    geht leider nicht. Es kommt immer noch dieselbe Meldung. Ich habe auch einfach mal CStr probiert leider auch ohne Erfolg.

    oCell ist übrigens ein "String" und wenn die Inhalte der Excelzelle Buchstaben enthalten geht es ja auch.
    iCount habe ich wieder zu Integer deklariert, leier auch ohne Erfolg.

    Noch eine Idee???


    Gruß
    Sabine
    Hi Andy,

    du hast recht, dann gehts zumindest teilweise. Leider habe ich in der Excel Spalten mit jeweils Buchstaben, Zahlen und Datum. Für Spalten mit Buchstaben und Zahlen kann ich das so machen, allerdings beim Datum bekomme ich in Excel nicht mehr das Datum sonder irgendwelche Zahlen dargestellt.


    Gruß
    Sabine
    Hi,

    wie sieht den die betroffene Code-Stelle aus? Wenn dort nie was anderes reinkommt als ein Datum oder "", sollte das eigentlich auch ohne Spalte-Formatierung zu lösen sein.


    Edit: Ich sehe das Problem schon.
    Der Typ von iCount hat damit nichts zu tun! Den solltest du als Integer deklarieren, wie es sich für For-Schleifen gehört.

    Das Problem ist, dass VB automatisch den String "" in den Typen der Spalte verwandeln will, was natürlich Blödsinn ist!

    VB.NET-Quellcode

    1. If cStr(oCell(iCount, 1).Value) = "" Then
    2. oCell(iCount, 1).Value = "-"
    3. End If
    sollte funktionieren.
    Da wird zuerst der Zelleninhalt in einen String konvertiert, sodass das "" nicht konvertiert wird. VB kann so ziemlich alles in einen String konvertieren, aber eben nicht anderst rum.

    Wenn das klappt, kannst du die Formatierung auch wieder umstellen :)


    mfG
    Andy

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Mad Andy“ ()