Я выполнил тестовый запуск с использованием определенных имен из Excel и затем использовал их в VBA для заполнения ActiveX ComboBox, как показано ниже:
Option Explicit
Private Sub Worksheet_Activate()
Dim dogs1 As Object
Dim Sh As Worksheet
'Me.all.Clear
If Choose = "dogs" Then
With Sheets("dogs")
all.ListFillRange = "dogs1"
Debug.Print all
End With
ElseIf Choose = "Cats" Then
With Sheets("cats")
all.ListFillRange = "Cats"
Debug.Print all
End With
End If
End Sub
Private Sub Choose_Click()
With Sheets("Index")
Choose.ListFillRange = "animalL"
End With
Worksheets("Print").Select
Worksheets("Interface").Select
End Sub
Этот работает как сон, используя мои определенные имена из первенствует. однако сейчас я пытаюсь реализовать это в моей реальной программе, и определенные имена не работают. У меня была похожая проблема при создании выпадающих списков животных, но это было только потому, что я не сделал их именами рабочих книг (глобальными), но я делаю это, и теперь я в растерянности, что не так. Вот код, над которым я работаю:
Option Explicit
Private Sub Worksheet_Activate()
Dim Sh As Worksheet
Me.MFG.Clear
For Each Sh In ThisWorkbook.Worksheets
Me.MFG.AddItem Sh.Name
Next Sh
If MFG.Value = "Kawneer" Then
With Sheets("Kawneer")
Disc.ListFillRange = "Frames"
Debug.Print Frame
End With
ElseIf MFG.Value = "PRL" Then
With Sheets("PRL")
Disc.ListFillRange = "test"
End With
End If
End Sub
мой вариант явно говорит, что мое имя, определенное в Frames, не определено, но оно должно быть, что означает, что test не читает ни то, ни другое, поэтому это не c проблема, но общая проблема с моими определенными именами. Все настроены на рабочую книгу (я тоже пытался делать их как отдельные листы), и когда я тестирую их в Excel, они работают просто отлично (например, нажмите на ячейку, нажмите «=», а затем введите «Кадры», это даст мне мой диапазон). Я не добавил свой код ComboBox, потому что он, кажется, работает нормально, просто не могу заставить работать определенные имена. Спасибо