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
属性,则始终可以直接使用该范围(即使用偏移量),但您也可以轻松地为列表编制索引,我可能会这样做,除非有令人信服的理由使用该系列本身。