Как изменить переменную для каждого цикла - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь создать пользовательскую форму с несколькими выпадающими списками, которые берут значения из других книг Excel.

На данный момент мой код создает метку подписи, зависит от значения массива, который я назвал "этикетка". Для каждого ярлыка мне нужно, чтобы он открывал определенный файл и брал оттуда значения в выпадающем списке. Например, если я нахожусь в 1-м цикле, мой массив будет иметь значение «Dirección», тогда мне потребуется следующая строка кода, откройте книгу Excel с именем Departamentos.xlsx и возьмите значения оттуда, если я нахожусь во 2-м цикле,Мне нужно будет открыть другую книгу Excel под названием Empresas.xlsx и т. Д.

Это код, который я подумал, но я не понимаю, что с этим не так, потому что vba возвращает мне ошибку времени выполнения '91'

enter image description here

Private Sub UserForm_Initialize()
   'Declarando variables
    Dim var As Long               'variable que para el bucle for
    Dim i As Long                 'variable para el bucle for
    Dim label As Variant
    Dim files As Variant

    'Creamos una array que contenga los nombres posibles de label
    label = Array("Dirección", "Empresa", "Area/Planta del suceso")
    files = Array("C:\Users\se72497\Desktop\Departamentos.xlsx", "C:\Users\se72497\Desktop\Empresas.xlsx", "C:\Users\se72497\Desktop\Areas.xlsx")

    For var = 0 To 2
        'Asigna el nombre a las etiquetas
        Controls("label" & var).Caption = label(var)
        set file= Workbooks.Open(files(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 files.Sheets("Hoja1").Range("C2").End(xlDown).Row
            Me.Controls("ComboBox" & var).AddItem files.Sheets("Hoja1").Cells(i, 3).Value
        Next i
    Next

    'Se cierran los archivos previamente abiertos
    files.Close
End Sub

Как вы можете видеть, я попытался сделать это, используя тот же метод, который я использовал с метками, и я создаю массив, который содержит путь к моим файлам,Затем внутри цикла я присваиваю значение переменной «file», которая будет меняться в зависимости от цикла.

Может кто-нибудь сказать, почему это не работает и что я могу вместо этого сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...