на отделен въпрос на 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