Excel VBA:访问所选ListBox行中的各个字段

时间:2017-07-28 19:20:34

标签: excel vba excel-vba listbox

我正在尝试访问所选/突出显示的ListBox "lstData"行中的单个单元格,以便我可以在其他位置引用它们的值。

当我为Me.lstData.SelectedItem设置监视时,我得到Expression not defined in context。与Me.lstData.SelectedIndexMe.lstData.Rows(1)相同。对我来说唯一有用的是Me.lstData.Value,但它只返回最左边的单元格。当我尝试将其插入=OFFSET函数

=Offset(Me.lstData.Value, ,1,1)

要立即向右访问单元格,我再次获得Expression not defined in context

如何引用其他选定的单元格?

1 个答案:

答案 0 :(得分:1)

我认为您无法在Offset表单控件上使用ListBox。引用多列ListBox中的“单元格”的方法是索引List属性。

此处,i返回所选项目的1代表列表框的第二列(基数0):

Option Explicit

Private Sub CommandButton1_Click()
Dim i As Long

With Me.ListBox1
    i = .ListIndex
    MsgBox .List(i, 1)
End With
End Sub

Private Sub UserForm_Initialize()
With Me.ListBox1
    .AddItem "A"
    .List(0, 1) = "Alpha"
    .AddItem "B"
    .List(1, 1) = "Beta"
End With

End Sub

enter image description here