Для целей контекста программа VBA, которую я пишу, предназначена для документирования технического обслуживания машины. Каждая машина имеет свою собственную пользовательскую форму и будет отображать введенную в нее информацию, когда вы щелкаете ее местоположение на карте, сделанной на листе в Excel. У каждой машины также есть свой лист. Я не знаю, является ли это очень рудиментарным способом сделать это или нет, так как мой опыт работы с Excel не слишком уводит меня от основ. По сути, я хочу, чтобы в каждой пользовательской форме была вкладка для отображения изображений из выпадающего списка в выпадающем списке для отображения рисунков или картинок с разбивкой. Теперь у меня не было опыта работы с vba до этого, поэтому я собирал записки из inte rnet, пытаясь собрать его вместе и пытаясь научиться как I go. Часть, над которой я сейчас застрял, - это получение значений массива и использование их для заполнения поля со списком. Вот как в настоящее время выглядит пользовательская форма:
Private Sub L101_Click()
End Sub
Private Sub ComboBox1_Change()
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Save_Click()
Unload Me
End Sub
Private Sub Contactors_Change()
Worksheets("L101").Range("A1") = Contactors.Text
End Sub
Private Sub Festoon_Change()
Worksheets("L101").Range("B1") = Festoon.Text
End Sub
Private Sub Motors_Change()
Worksheets("L101").Range("A2") = Motors.Text
End Sub
Private Sub Remote_Change()
Worksheets("L101").Range("B2") = Remote.Text
End Sub
Private Sub Pendant_Change()
Worksheets("L101").Range("A3") = Pendant.Text
End Sub
Private Sub Sensors_Change()
Worksheets("L101").Range("B3") = Sensors.Text
End Sub
Private Sub Controlpanel_Change()
Worksheets("L101").Range("A4") = Controlpanel.Text
End Sub
Private Sub Notes_Change()
Worksheets("L101").Range("B4") = Notes.Text
End Sub
Private Sub UserForm_Initialize()
Dim nfiles As Long
Dim FilesFound As String
Dim Path As String
Dim strFoundStr As String
Dim strFoundArr As Variant
Dim strElem As Variant
Dim n As Integer
Path = Dir("C:\Users\lccbrd0\Desktop\New folder\")
Do While Len(Path) > 0
n = n + 1
strFoundStr = strFoundStr & Path & " "
Path = Dir
Loop
strFoundArr = Split(Trim(strFoundStr))
For Each strElem In strFoundArr
Debug.Print strElem
Next strElem
Contactors.Text = Worksheets("L101").Range("A1")
Festoon.Text = Worksheets("L101").Range("B1")
Motors.Text = Worksheets("L101").Range("A2")
Remote.Text = Worksheets("L101").Range("B2")
Pendant.Text = Worksheets("L101").Range("A3")
Sensors.Text = Worksheets("L101").Range("B3")
Controlpanel.Text = Worksheets("L101").Range("A4")
Notes.Text = Worksheets("L101").Range("B4")
End Sub
После того, как я заполняю комбинированный список, я хочу, чтобы этот * комбинированный список отображался на изображении, чтобы на основе выбора из раскрывающегося списка он отображался соответствующее изображение в соответствующей папке. Также вы можете предположить, что я понимаю весь код, который написан ниже, но любые дополнения, которые вы предлагаете, если бы вы могли дать мне краткое описание того, что он делает, были бы весьма полезны. Кроме того, правильно ли я считаю, что если я хочу, чтобы список выпадающих списков обновлялся каждый раз, когда пользователь помещает новое изображение в папку, я хочу, чтобы код для функции "dir" находился в разделе инициализации пользовательской формы?