2017-10-23 2 views
0

Ich muss über alle ausgewählten Zeilen in einem SSDBGrid iterieren. Dann muss ich den Wert in der aktuellen Zeile abrufen und die relevante Stelle im Array mit diesem Wert füllen.Iterate über alle ausgewählten Zeilen von SSDBGrid, um ein Array zu füllen

Ich habe versucht, diese unten mit dem Code zu tun:

Dim i As Integer 
i = 0 

Dim nomCode(Grd_Nominal.SelBookmarks.Count) As String ' This is my array. 

Do While Grd_Nominal.SelBookmarks <> 0 
    nomCode(i) = Grd_Nominal.SelBookmarks(0) 

    If Grd_Nominal.SelBookmarks.Count > 0 Then 
     Grd_Nominal.SelBoomarks(0).Remove 
    End If 

    i = i + 1 
Loop 

ist jedoch nomCode(i) immer als nomCode(i) = "??"

Warum es Einsetzen gefüllt wird „??“, und wie kann ich Fix dies um den Wert der aktuellen Zeile einzufügen?

+0

?? könnte darauf hinweisen, dass ein Problem mit der Zeichencodierung aufgetreten ist. – DaveInCaz

Antwort

0

Sie müssen zuerst überdenken, wie Sie Ihr Array deklarieren.

Dim nomCode() As String 
ReDim nomCode(Grd_Nominal.SelBookmarks.Count - 1) As String 

Dies liegt daran, wenn ein Array deklarieren Sie in einer konstanten wie die Länge übergeben müssen. ReDim nicht, so wird dies teilweise auf die Lösung des Problems gehen.

Dim x As Integer 
Dim bk As Variant 

For x = 0 to Grd_Nominal.Rows.Count - 1 
    bm = Grd_Nominal.SelBookmarks(x) 
    nomCode(x) = Grd_Nominal.Columns("Your_Column").CellValue(bm) 
Next 

Das sollte den Rest des Problems sortieren, denke ich.