【问题标题】:Excel VBA: ListboxExcel VBA:列表框
【发布时间】:2011-03-01 14:09:06
【问题描述】:

在一个单独的 Excel 2007 VBA 问题上,我如何使用“开发人员”>“表单控件”下的列表框?

我想显示来自另一个工作表的一些数据(比如 wsData),但是我想显示特定于用户的数据(比如 wsInterface,单元格 A1),而不是使用“格式控制”>“控制” > “输入范围”

所以我将弹出一个表单以提示用户输入要键入工作表 wsInterface 单元格 A1 的名称,并且我希望与用户相关的数据显示在列表框中。谢谢

wsData:

name  |   date   | remarks
Mr A     22/2/11   blah blah blah 1.
Mr B     22/2/11   blah blah blah 2.
Mr A     23/2/11   blah blah blah 3.

ws接口:

Cell A1: Mr A

ListBox (2 columns)
22/2/11   blah blah blah 1.
23/2/11   blah blah blah 3.

这是我在其中一个宏中的代码:

Sub CustRemarkListBox_Change()
    Dim lbtarget As MSForms.ListBox
    Dim rngSource As Range
    Dim rw As Range
    Dim i As Long

    Set rngSource = Range("Remarks")

设置 lbtarget = CustRemarkListBox

    With lbtarget
        .ColumnCount = 2
        .ColumnWidths = "50;200"
        For Each rw In rngSource.Rows
            If rw.Cells(1, 1) = Worksheets("ExistingCustomer").Range("C4") Then
                .AddItem ""
                For i = 1 To .ColumnCount
                    .List(.ListCount - 1, i - 1) = rw.Cells(1, i)
                Next
            End If
        Next
    End With
End Sub

粗体字是我的问题,它说“需要对象”,这意味着它没有检测到我的 Excel 工作表中名为“CustRemarkListBox”的列表框

【问题讨论】:

  • 您在使用表单控件部分的列表框吗?这些控件没有“更改事件”或任何与此相关的事件。此外,这些对象不是 MSForms 库的一部分。您似乎所做的一切都是为了 ActiveX 控件,所以我想清楚您正在使用什么。

标签: vba excel excel-2007


【解决方案1】:

因此,如果我理解正确,用户必须在单元格中输入名称,并且您希望根据输入的名称填充列表框?

当您输入一个可以匹配的名称时,您可以使用 Worksheet_Range 事件来运行一些代码来填充列表框。

您对 VBA 的熟悉程度如何?您可以在相关工作表的代码页中使用类似以下内容:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
If Target.Address = "A1" Then  
'put your code here  
End If  
End Sub

【讨论】:

  • 我不确定如何在 Excel 中选择列表框。例如,在我更熟悉的表单中,我可以通过名称选择列表框(例如 form1 lboxData)。但即使我使用它的名称,我似乎也无法在 excel 本身中选择列表框。
  • 然后右键单击 Excel 中的控件,然后选择“分配宏”。它将显示一个宏对话框,默认值为 ListBox1_Change。 New 会将其应用于新模块。如果您已从列表框 1 重命名它,那么它将创建事件为 YourName_Change()。 HTH。马丁
  • 嗨马丁,谢谢你的回答,但它没有解决我的问题。基本上我编辑了我的帖子并粘贴了代码。BOLD 部分是错误所在:Excel VBA 无法检测到我的名为“CustRemarkListBox”的列表框,它位于我的 Excel 工作表之一中,通过开发人员 > 表单控制 > 列表框插入。
猜你喜欢
  • 2019-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-11
  • 1970-01-01
  • 2021-07-14
  • 1970-01-01
相关资源
最近更新 更多