【发布时间】: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