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'
我有一个包含 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'