Excel ActiveX Listbox nie jest włączony przy otwartym pliku

Próbuję znaleźć dziwną sytuację.

Mam skoroszyt z wieloma arkuszami. Na jednym arkuszu mam jedno pole listy ActiveX (CTOverview.Listbox1). Na drugim arkuszu mam łącznie trzy listy list (CTSelected.Listbox1 przez Listbox3). Używam zapytania do wypełnienia Listbox1 na obu arkuszach tymi samymi danymi. Kod tego jest poniżej:

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

Ten kod działa pięknie (nie mój kod - dostałem go z interttes). Oba LIstbox1 na obu arkuszach ładują się z listą odrębnych regionów. Jednak nie mogę uzyskać CTOverview.Listbox1, aby odpowiedzieć na jakiekolwiek dane wejściowe, dopóki nie wybiorę czegoś z CTSelected.Listbox1. Kiedy to zrobię, obie listy Listbox1 działają normalnie i nie są w inny sposób połączone, przynajmniej tak daleko, jak to możliwe.

Próbowałem zamknąć zestaw rekordów po wypełnieniu dwóch listbox1 (bez efektu). Próbowałem wybrać domyślny element w CTOverview.Listbox1 (bez efektu).

Na wszelki wypadek tutaj jest mój kod do otwierania / zamykania zestawu rekordów:

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

O ile wiem, muszę skupić uwagę na arkuszu CTOverview. Jeśli kliknę na inny arkusz, a następnie kliknę z powrotem na CTOverview, Listbox1 wydaje się działać. To jest problem, ponieważ CTOverview ma być moim arkuszem uruchamiania.

Masz jakiś pomysł, dlaczego tak się dzieje? Wyciągam włosy, próbując to rozgryźć. Wszelkie spostrzeżenia byłyby bardzo mile widziane.

questionAnswers(1)

yourAnswerToTheQuestion