Gewusst wie: Füllen einer Combobox

Ich bin ganz neu bei VBA und ich habe Schwierigkeiten mit dem füllen einer combobox.
Ich versuche, füllen einer combobox mit dem Inhalt der ersten Spalte in einer Tabellenkalkulation, so kann ich löschen Sie die entsprechende Zeile der Daten auf der Grundlage der combobox-Auswahl.

Ist, habe ich mich durch mehrere Fragen hier und anderswo, wenn diese Frage, aber ich habe nicht nichts gefunden, die funktionierte.

Unten ist der code, den ich versucht habe. Ich bin etwas verloren, als ich versucht habe, zusammenschustern, die unterschiedlichen Antworten von anderen Fragen, um diese zu arbeiten, aber ohne Erfolg. Ich erwarte, dass die combobox zu füllen mit den Werten aus Spalte 1, aber es bleibt leer.

Versuch #1 Dies beinhaltete das erstellen eines dynamic range:

=OFFSET(PC_DataSheet!$A$2,0,0, COUNTA(PC_DataSheet!$A$1:$A$65536)-1,1)
Private Sub UserForm1_Initialize()

    Dim rngPCNumber As Range
    Dim ws As Worksheet

    Set ws = Worksheets("Sheet1")

    For Each rngPCNumber In ws.Range("PCNumber")
        Me.PC_ListComboBox.AddItem rngPCNumber.Value
    Next rngPCNumber

End Sub

Versuch #2

Private Sub UserForm1_Initialize()

    Dim arr() As Variant

    arr = Worksheets("Sheet1").Range("C2:" & lrow).Value
    PC_ListComboBox.List = arr

End Sub

Versuch #3

Private Sub UserForm1_Initialize()

    Dim vArr As Variant
    Dim i As Integer

    vArr = Sheet1.Range("A:1").Value

    With PC_ListComboBox.Clear
         For i = LBound(vArr) To UBound(vArr)
            .AddItem vArr(i)
         Next i
    End With

End Sub

Jede Hilfe auf diesem würde sehr geschätzt!


EDIT: ich habe versucht, das einfügen des code vorgeschlagen Gary ' s Student in meine UserForm_Initialize() Sub, aber wenn ich versuche zum öffnen der userform bekomme ich die folgende Fehlermeldung:

Run-time error '9': Subscript out of range

Wenn ich auf "Debuggen" klicken, unterstreicht Sie diesen code:

'Opens PC UserForm when pressed.
Private Sub AddPCButton_Click()

    UserForm.Show 'This line is the line highlighted by the debugger.

End Sub

Ich habe keine Ahnung, was dies verursacht...wenn ich den vorgeschlagenen code erhalte ich eine Fehlermeldung, aber wenn ich den code entfernen der userform einwandfrei funktioniert.
Hier ist Private Sub UserForm_Initialize() mit und ohne die vorgeschlagene code.

'Clears and Initializes the form when first loaded.
Private Sub UserForm_Initialize()

    'Empties combo boxes.
    PC_OSTypeComboBox = ""
    PC_HDTypeComboBox = ""

    'Populates combo boxes.
    With PC_OSTypeComboBox
        .Clear
        .AddItem "Windows 8"
        .AddItem "Windows 7"
        .AddItem "Windows Vista"
        .AddItem "Windows XP"
        .AddItem "Windows 2000"
        .AddItem "Windows 98"
        .AddItem "Windows NT"
        .AddItem "Windows 95"
    End With
    With PC_HDTypeComboBox
        .Clear
        .AddItem "SATA"
        .AddItem "IDE"
        .AddItem "SCSI"
    End With

End Sub

Dies ist auch der vorgeschlagene code:

'Clears and Initializes the form when first loaded.
Private Sub UserForm_Initialize()

    Dim N As Long, i As Long
    With Sheets("Sheet1")
        N = .Cells(Rows.Count, 1).End(xlUp).Row
    End With

    With PC_NumberComboBox
        .Clear
        For i = 1 To N
            .AddItem Sheets("Sheet1").Cells(i, 1).Value
        Next i
    End With

    'Empties combo boxes.
    PC_OSTypeComboBox = ""
    PC_HDTypeComboBox = ""

    'Populates combo boxes.
    With PC_OSTypeComboBox
        .Clear
        .AddItem "Windows 8"
        .AddItem "Windows 7"
        .AddItem "Windows Vista"
        .AddItem "Windows XP"
        .AddItem "Windows 2000"
        .AddItem "Windows 98"
        .AddItem "Windows NT"
        .AddItem "Windows 95"
    End With
    With PC_HDTypeComboBox
        .Clear
        .AddItem "SATA"
        .AddItem "IDE"
        .AddItem "SCSI"
    End With

End Sub
Laren, einfach nur neugierig - ich bin völlig neu für stack-überlauf, ich Frage mich nur, warum Sie die änderungen, die Sie gemacht haben?
Sie sollte nicht schreiben, tags, im Titel, da Fragen sind bereits sortiert und klassifiziert durch tags. Auch Dinge wie "danke" oder "ich habe diesen Fehler auch." sind nicht wirklich notwendig. Dies sind einfache Regeln, die helfen, halten StackOverflow organisiert 🙂
Ah ok, danke! <--- nicht eigentlich als Scherz gedacht hier 😉
In Ihrem update, es sieht aus wie Sie sein könnten, verweisen auf eine nicht vorhandene Arbeitsblatt - haben Sie vergessen zu aktualisieren "Tabelle1" aus dem, was @Gary ' s Student geschrieben?
Die Fehlermeldung "subscript out of range", wenn das einen Unterschied macht. Ich habe Doppel-und-dreifach-geprüft für die Benennung von Themen und keine gefunden. Wie kann ich überprüfen, ob der Arbeitsblatt-name wird in der Liste der Arbeitsblätter?

InformationsquelleAutor ckemmann | 2015-04-10

Schreibe einen Kommentar