首页 > 解决方案 > 如何更改每个循环的变量

问题描述

我正在尝试使用几个组合框创建一个用户表单,这些组合框从另一个 excel 工作簿中获取值。

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

这是我想的代码,但我不知道这有什么问题,因为 vba 返回一个运行时错误'91'

在此处输入图像描述

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

如您所见,我尝试使用与标签相同的方法来执行此操作,并创建了一个包含文件路径的数组。然后在循环内我为“文件”变量分配一个值,该变量将取决于循环。

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

标签: excelvbacombobox

解决方案


推荐阅读