Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:访问选定列表框行中的各个字段_Vba_Excel_Listbox - Fatal编程技术网

Excel VBA:访问选定列表框行中的各个字段

Excel VBA:访问选定列表框行中的各个字段,vba,excel,listbox,Vba,Excel,Listbox,我试图访问选定/突出显示的列表框“lstData”行中的单个单元格,以便在其他位置引用它们的值 当我为Me.lstData.SelectedItem设置监视时,得到的表达式未在上下文中定义。与Me.lstData.SelectedIndex和Me.lstData.Rows(1)相同。这种方法对我唯一有效的是me.lstData.Value,但它只返回最左边的单元格。当我尝试将其插入=OFFSET函数时 =Offset(Me.lstData.Value, ,1,1) 要立即访问右边的单元格,我再

我试图访问选定/突出显示的列表框
“lstData”
行中的单个单元格,以便在其他位置引用它们的值

当我为
Me.lstData.SelectedItem
设置监视时,得到的
表达式未在上下文中定义。与
Me.lstData.SelectedIndex
Me.lstData.Rows(1)
相同。这种方法对我唯一有效的是
me.lstData.Value
,但它只返回最左边的单元格。当我尝试将其插入
=OFFSET
函数时

=Offset(Me.lstData.Value, ,1,1)
要立即访问右边的单元格,我再次得到上下文中未定义的
表达式


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

我认为您不能在
列表框
表单控件上使用
偏移量
。在多列
列表框中引用“单元格”的方法是对
列表
属性进行索引

此处,
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

我认为您不能在
列表框
表单控件上使用
偏移量
。在多列
列表框中引用“单元格”的方法是对
列表
属性进行索引

此处,
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

这是一个表单控件列表框,例如在用户表单上?我不认为SelectedItem或SelectedIndex是可用的属性/方法。我认为这些是您无法使用的.net实现。是的,在用户表单上。我有没有办法做我想做的事情?你有没有机会回顾一下我下面的答案?这是一个表单控件列表框,例如在用户表单上?我不认为SelectedItem或SelectedIndex是可用的属性/方法。我认为这些是您无法使用的.net实现。是的,在用户表单上。我有什么办法来做我想做的吗?你有机会回顾一下我下面的答案吗?如果列表框有一个
RowSource
属性,你总是可以直接使用该范围(即使用偏移量),但你也可以很容易地索引
列表
,我可能就是这么做的,除非有令人信服的理由使用范围本身。如果列表框具有
RowSource
属性,则始终可以直接使用该范围(即使用偏移量),但您也可以轻松地为
列表编制索引,我可能会这样做,除非有令人信服的理由使用该系列本身。