VBA FlexGrid 已选择要排列的行

VBA FlexGrid selected rows to array

我有一个包含 3 列的 Flexgrid (VSFlexGrid 8)

网格名称=Main_Window.form_seg_carrier_grid

Select | Name | ID
x      | abc  | 1
       | cdf  | 2
x      | dfs  | 3

select 列定义为布尔数据类型,由用户决定 select 哪些行是 true/false。

我需要的是一种获取所有为真的行并将 ID 设置为数组的方法。

目前我唯一能得到的就是告诉我哪一行是 selected,或者如果它是 true/false,0 表示假,-1 表示真。

可以通过单击按钮或更改来构建数组。

编辑 1

据我所知,这将触发一个 msgbox(测试变量的快速方法)以显示它何时被设置为 true

    Private Sub form_seg_carrier_grid_Click()
Dim test As String
    test = Main_Window.form_seg_carrier_grid.Value
        If test = -1 Then

            MsgBox test

        End If

结束子

编辑 2

我觉得我已经很接近这样的东西了,只是不能让它做我想做的事..

Dim i As Integer
Dim test As String

For i = 0 To Main_Window.form_seg_carrier_grid.Rows - 1
    If Main_Window.form_seg_carrier_grid.IsSelected(i) Then
        If test <> vbNullString Then test = test & ", "
            test = test & "'"
            test = test & Main_Window.form_seg_carrier_grid.ValueMatrix(i, 1)
            test = test & "'"
    End If
Next i

我能够通过添加一个布尔列来完成此操作

0 为假,-1 为真

然后我使用这段代码构建了一个数组,我可以使用 IN 语句

填充 SQL 查询

(i, 3) 指定我希望值来自哪一列

    Dim i As Integer
Dim test As String

For i = 0 To Main_Window.form_seg_carrier_grid.Rows - 1
    If Main_Window.form_seg_carrier_grid.ValueMatrix(i, 0) = -1 Then
        If test <> vbNullString Then test = test & ", "
            test = test & "'"
            test = test & Main_Window.form_seg_carrier_grid.ValueMatrix(i, 3)
            test = test & "'"
    End If
Next i

输出将是(引用原始 post )

'1','3'