Excel ActiveX Listbox beim Öffnen der Datei nicht aktiviert

Ich versuche, eine bizarre Situation herauszufinden.

Ich habe ein Arbeitsbuch mit vielen Blättern. Auf einem Blatt habe ich eine ActiveX-Listbox (CTOverview.Listbox1). Auf einem zweiten Blatt habe ich insgesamt drei Listboxen (CTSelected.Listbox1 bis Listbox3). Ich benutze eine Abfrage, um Listbox1 auf beiden Blättern mit denselben Daten zu füllen. Der Code dafür ist unten:

strSQL = "Select Distinct [Region] From [UniqueCTList$] Order by [Region]"
closeRS
OpenDB

' initialize listboxes
CTSelect.ListBox1.Clear
CTSelect.ListBox2.Clear
CTSelect.ListBox3.Clear
CTOverview.ListBox1.Clear

' initialize with entire division value
CTSelect.ListBox1.AddItem "Entire Division"
CTOverview.ListBox1.AddItem "Entire Division"

' initialize selected Tech
CTData.Range("CT_Selected") = ""

' populate listboxes using recordset
rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic

If rs.RecordCount > 0 Then
    Do While Not rs.EOF
        CTOverview.ListBox1.AddItem rs.Fields(0)
        CTSelect.ListBox1.AddItem rs.Fields(0)
        rs.MoveNext
    Loop
Else
    MsgBox "I was not able to find any unique Regions.", vbCritical + vbOKOnly
    Exit Sub
End If

Dieser Code funktioniert wunderbar (nicht mein Code - ich habe ihn von den Zwischenrohren erhalten). Beide LIstbox1 auf beiden Blättern werden mit der Liste der unterschiedlichen Regionen geladen. Ich kann CTOverview.Listbox1 jedoch nicht auf Eingaben reagieren lassen, bis ich etwas aus CTSelected.Listbox1 ausgewählt habe. Sobald ich das mache, funktionieren beide Listbox1s normal und sind nicht anderweitig verbunden, zumindest soweit ich das beurteilen kann.

Ich habe versucht, das Recordset zu schließen, nachdem ich die beiden Listbox1s ausgefüllt habe (keine Auswirkung). Ich habe versucht, ein Standardelement in CTOverview.Listbox1 auszuwählen (keine Auswirkung).

Für den Fall, dass es wichtig ist, hier ist mein Code zum Öffnen / Schließen des Recordset:

Public Sub OpenDB()
    If cnn.State = adStateOpen Then cnn.Close

    cnn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; _
        DBQ=" & ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name

    cnn.Open
End Sub


Public Sub closeRS()
    If rs.State = adStateOpen Then rs.Close
    rs.CursorLocation = adUseClient
End Sub

Soweit ich das beurteilen kann, muss ich mich vom CTOverview-Blatt lösen. Wenn ich auf ein anderes Blatt klicke und dann zurück zu CTOverview klicke, scheint Listbox1 zu funktionieren. Dies ist ein Problem, da CTOverview mein Startblatt sein soll.

Irgendeine Idee, warum das passieren könnte? Ich ziehe mir die Haare aus und versuche das herauszufinden. Alle Einsichten wäre sehr dankbar.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage