VBA - 列表框选择项,提供单元格地址

VBA - 列表框选择项,提供单元格地址

尝试从选定的列表框项中获取单元格地址。

列表框名称:CBView

行来源:F1:K99(因此,列表框中的 K 列 = 第 5 列)

目标是选择列表框中的一行,然后双击,它会给我一个单元格的地址(最后一列 K)。例如,双击一行项目,它会给我 $K$33 作为该行项目在 K 列的单元格地址。我哪里做错了?

Private Sub CBView_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

    Dim rCell As Range
    Dim x As Long
    With CBView
        For x = CBView.ListCount - 1 To 1 Step -1
            If CBView.Selected(x) Then

               MsgBox CBView.List(.ListIndex, 5)
               MsgBox CBView.List(.ListIndex, 5).Address  ''''<<<<< Runtime error 424 object required.

            End If
        Next x
    End With

End Sub

答案1

我假设你使用了多列列表填充方法至少,我在使用 excel 2007,表单控制列表不支持多列。

在这种情况下,您可以说列表“一次性”填充了值,而不是实际引用范围。这可以通过以下语句证明:

MsgBox typename(CBView.List(.ListIndex, 5))

输出“string”。值不是对象 - 不具备属性或方法 - 因此出现错误。

不过,您可以做的是让温度范围为您提​​供地址。

Const LROWST = 1
Const LCOLST = 6

'...rest of code...

msgbox cells(LROWST + .ListIndex,LCOLST + 5).address

相关内容