Excel 如何更改每个循环的变量

Excel 如何更改每个循环的变量,excel,vba,combobox,Excel,Vba,Combobox,我正在尝试创建一个带有多个组合框的userform,这些组合框从另一个excel工作簿中获取值 目前,我的代码创建标题标签取决于我称之为“标签”的数组的值。对于每个标签,我需要打开一个特定的文件,并从中获取组合框值。例如,如果我在第一个循环中,我的数组值将是“Dirección”,那么我需要下一行代码打开一个名为departmentos.xlsx的excel工作簿并从中获取值,如果我在第二个循环中,我将需要打开另一个名为Empresas.xlsx的excel工作簿,以此类推 这是我认为的代码,但

我正在尝试创建一个带有多个组合框的userform,这些组合框从另一个excel工作簿中获取值

目前,我的代码创建标题标签取决于我称之为“标签”的数组的值。对于每个标签,我需要打开一个特定的文件,并从中获取组合框值。例如,如果我在第一个循环中,我的数组值将是“Dirección”,那么我需要下一行代码打开一个名为departmentos.xlsx的excel工作簿并从中获取值,如果我在第二个循环中,我将需要打开另一个名为Empresas.xlsx的excel工作簿,以此类推

这是我认为的代码,但我不知道这有什么错,因为vba返回我一个运行时错误“91”

正如您所看到的,我尝试使用与标签相同的方法,创建了一个包含文件路径的数组。 然后在循环内部,我为“file”变量指定一个值,该变量将根据循环的不同而变化


有人能告诉我为什么它不工作,我能做些什么吗?

注意-为什么要在循环之外关闭文件?因为我只想打开文件以获取该文件中的值。在那之后,我不想让它保持打开状态。但是你应该在循环中关闭它,对吗?哦,是的,我没有意识到。谢谢,但如果我关闭循环内的文件,vba将返回“自动错误”。
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