Я новичок в vba и пытаюсь создать форму в Excel со съемными списками с элементами, взятыми из другой книги Excel, которая содержит элементы, которые мне нужны для списка.
В то же времятак как я хочу динамически изменять значения метки, я создал цикл For Next, который меняет значение метки на каждом ходу. Я должен сказать, прежде чем вы увидите код, который я изменил имя метки, чтобы начать с 0 вместо 1, так что моя первая метка называется label0, а не label1, я сделал это, потому что я создал массив с именами, которые мне нужны для меток.
Я пытался сделать это:
Private Sub UserForm_Initialize()
'Declarando variables
Dim file As Workbook 'variable que contiene el libro con la tabla de los archivos
Dim var As Long 'variable que para el bucle for
Dim i As Long 'variable para el bucle for
Dim label As Variant
'Creamos una array que contenga los nombres posibles de label
label = Array("Dirección", "Empresa", "Area/Planta del suceso")
'Asignamos los valores para las variables de departamentos y empresas que abrirán los respectivos archivos que se encuentran en la ruta especificada
Set file = Workbooks.Open("C:\Users\se72497\Desktop\Departamentos.xlsx")
For var = 0 To 2
'Asigna el nombre a las etiquetas
Controls("label" & var).Caption = label(var)
'Bucle que recorre cada una de las líneas que existen en la tabla de DEPARTAMENTOS y se añaden a la lista desplegable que se especifica
For i = 2 To file.Sheets("Hoja1").Range("C2").End(xlDown).Row
direccion.AddItem file.Sheets("Hoja1").Cells(i, 3).Value
Next i
Next
file.Close
End Sub
Я пытаюсь изменить файл переменной каждый раз, когда цикл возвращается к For var, потому что когда label2.caption равен label (2)например, нужен другой файл, чем когда это label1.caption = label (0). Я не знаю, создам ли другой массив с путем к файлу, я полагаю, что могу это сделать, но если кто-нибудь знает другой способ, пожалуйста, дайте знать mw.