迭代所有选定的SSDBGrid行以填充数组

时间:2017-10-23 15:11:14

标签: vb6 grid iteration

我需要迭代SSDBGrid中的所有选定行。然后,我需要获取当前行中的值,并使用此值填充数组中的相关位置。

我一直尝试使用以下代码执行此操作:

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

但是,nomCode(i)始终填充为nomCode(i) = "??"

为什么要插入&#34; ??&#34;,如何解决此问题以插入当前行的值?

1 个答案:

答案 0 :(得分:0)

首先,您需要重新考虑如何宣布阵列。

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

这是因为在声明一个数组时,你需要传入一个常量作为长度。 ReDim没有,所以这将部分解决问题。

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

我认为应该对问题的其余部分进行排序。