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

Excel VBA: Listbox - vba, excel-vba, excel-2007, excel

на окремому запиті VBA Excel 2007, як використовувати список у розділі "Розробник"> "Контроль форм"?

Я хотів би відобразити деякі дані з іншоголист (скажімо 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

Один у жирній моїй проблемі, на ньому написано: "Об'єкт обов'язковий", що означає, що він не виявив мого списку в моєму робочому аркуші 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