datagrid Zellenweise durchsuchen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von khargara.

    datagrid Zellenweise durchsuchen

    Hi, :)

    ich hab hier eine kleine Herausforderung.


    VB.NET-Quellcode

    1. Dim yTable1 As Integer
    2. Dim yTable2 As Integer
    3. Dim xtable1 As Integer
    4. Dim xtable2 As Integer
    5. yTable1 = DataGridView1.ColumnCount
    6. yTable2 = DataGridView2.ColumnCount
    7. xtable1 = DataGridView1.RowCount
    8. xtable2 = DataGridView2.RowCount
    9. 'Row Tables
    10. 'table1
    11. Dim i As Integer
    12. Dim k As Integer
    13. 'table2
    14. Dim j As Integer
    15. Dim l As Integer
    16. i = 1
    17. j = 1
    18. For i = 1 To yTable1 Step +1
    19. For k = 1 To xtable1 Step +1
    20. 'code für Column Vergleich
    21. 'MsgBox(k & " " & i)
    22. If k = xtable1 Then
    23. i = i
    24. End If
    25. If k < xtable1 - 1 Then
    26. Me.DataGridView1.CurrentCell = Me.DataGridView1(i, k)
    27. MsgBox(DataGridView1.CurrentCell.Value)
    28. End If
    29. Next k
    30. If i = yTable1 Then
    31. MsgBox("max reached")
    32. Exit For
    33. MsgBox("das wars")
    34. End If
    35. Next i


    Ich möchte einn datagrid durchforsten und zwar Zellengenau. Das geht genau solange gut wie ich die obere for schleife nicht wiederholenlasse (genau das funktioniert nämlich nicht.)
    Eigentlich soll das kleine skript nur jede Zelle runterwärts durchgehen und danach eine column weiter nach rechts. Beim der letzten Row in einer Column bleibt das Skript aber nicht stehen, sondern geht einfach weiter Lustig nach unten, zu nicht exisiterenden Datensätzen.
    Beim Durchlauf bekomm ich die Fehlermeldung die Ihr im Anhang findet.
    Bilder
    • 2013-07-02_121248.jpg

      47,63 kB, 757×276, 53 mal angesehen

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

    Ehm du schreibst über Excel Tabelle und postest nen Code vom Datagrid...
    Das passt schonmal nicht.

    Und ich hab nu auf die Schnelle nirgends gefunden wo stehst, wie er erkennt "ENDE erreicht".?
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    khargara schrieb:

    VB.NET-Quellcode

    1. MsgBox(DataGridView1.CurrentCell.Value)
    Darf ich annehmen, dass Du Option Strict On hast? :thumbsup:
    Konvertiere das Object in einen String:

    VB.NET-Quellcode

    1. MessageBox.Show(DataGridView1.CurrentCell.Value.ToString)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    du hast recht ist editiert denkfehler von mir.

    In wiefern ende erreicht? er ließt mittels xtable1 = DataGridView1.RowCount aus wie viele einträge die column hat. und wenn kdie Größe von xtable1 - 1 erreicht hat soll i um eins erhöht werden


    Darf ich annehmen, dass Du Option Strict On hast? :thumbsup:


    Nein ist auf off gestellt

    mit der Konvertierung .tostring versuche ich es mal danke ;)

    khargara schrieb:

    VB.NET-Quellcode

    1. For i = 1 To yTable1 Step +1
    Noch was:
    Bei .NET sind die Indizes nullbaiert, d.h., die Werte gehen von 0 bis Anzahl-1.
    Mach mal draus (Step +1 brauchst Du nicht, das ist default):

    VB.NET-Quellcode

    1. For i = 0 To yTable1 - 1
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!