我需要迭代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;,如何解决此问题以插入当前行的值?
答案 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
我认为应该对问题的其余部分进行排序。