Ich bin ein Neuling in VBA Excel und versuchen Sie hier, eine Combobox in einem Benutzerformular mit Daten aus einem Blatt zu füllen. Ich definierte Adresse & verwendet die .rowsource-Eigenschaft, wobei Code ohne Fehler durchlaufen, aber nichts auf der Combobox auffüllt. Jede Hilfe wird geschätzt.kann Combobox nicht mit .rowsource {vba Excel}
Unten finden Sie den Code -
Private Sub empSearchdb_Click()
Dim cell As Range
Dim emptyRow As Long
Dim rng As Range
Dim ws1 As Worksheet
Dim empSearchKeyword As String
'Stop screen flickering
Application.ScreenUpdating = False
'setting worksheet
Set ws1 = Sheets("EmployeeDetails")
ws1.Activate
'find last empty row
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 2
'when nothing is selected
If Me.empSearchL.ListIndex = -1 Then
'from $A$1 to $J$lastrow-1
Set rng = Range("$A$1", Cells(emptyRow - 1, 10))
With Me.empDetails
.RowSource = rng.Address
End With
Neuer Code geändert -
Dim cell As Range
Dim emptyRow As Long
Dim rng As Range
Dim ws1 As Worksheet
Dim empSearchKeyword As String
'Stop screen flickering
Application.ScreenUpdating = False
'setting worksheet
Set ws1 = ActiveWorkbook.Sheets("EmployeeDetails")
'find last empty row
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 2
'from $A$1 to $J$lastrow-1
Set rng = ws1.Range("$A$1", ws1.Cells(emptyRow - 1, 10))
Set rng = ws1.Range("$A$1", "$J$10")
'With your listbox do the following
If Me.empSearchL.ListIndex = -1 Then
With Me.empDetails
'If nothing is selected, add a row source
.ColumnCount = 10 'Otherwise you will only get 1 column
.RowSource = rng.Address
End With
End if
Application.ScreenUpdating = True
Haben Sie tatsächlich eine 'Application.ScreenUpdating = True' nachdem der Code endet? Sie sollten mindestens bis "End If" zeigen. – Noceo
@Noceo Yep Ich hatte am Ende "Application.ScreenUpdating = True". Sorry für unvollständigen Code, obwohl ich zwei weitere wenn Bedingungen für Listenindizes habe, aber ich bin besorgt über nur "List Index = -1". Dieser Code genügt, nur ein "End If" fehlt. – jay