/ / Excel VBA: Списък - vba, excel-vba, excel-2007, excel

Excel VBA: Списък на списъци - vba, excel-vba, excel-2007, excel

на отделен въпрос на Excel 2007 VBA, как да използвам списъка в "Developer"> "Form Control"?

Бих искал да покажа някои данни от другработен лист (да речем 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.

wsInterface:

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

Този, който е с удебелен шрифт е моят проблем, той казва "Object Required", което означава, че не е открил списъка ми в моя Excel лист, наречен "CustRemarkListBox"

Отговори:

0 за отговор № 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