Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何在每次循环中更改文件_Excel_Vba - Fatal编程技术网

Excel 如何在每次循环中更改文件

Excel 如何在每次循环中更改文件,excel,vba,Excel,Vba,我是vba新手,我正在尝试在excel中创建一个表单,其中包含可移动列表,其中的项目取自另一本excel书籍,其中包含我需要的列表项目 在我想动态更改标签值的同时,我为下一步做了一个循环,每次循环都会更改标签的值。 在您看到代码之前,我需要说,我将标签名称更改为从0开始,而不是从1开始,因此我的第一个标签称为label0,而不是label1,我之所以这样做是因为我创建了一个包含标签所需名称的数组 我试着这样做: Private Sub UserForm_Initialize() 'Dec

我是vba新手,我正在尝试在excel中创建一个表单,其中包含可移动列表,其中的项目取自另一本excel书籍,其中包含我需要的列表项目

在我想动态更改标签值的同时,我为下一步做了一个循环,每次循环都会更改标签的值。 在您看到代码之前,我需要说,我将标签名称更改为从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变量时,我都会尝试更改变量文件,因为当label2.caption等于label(2)时,例如需要另一个文件,而不是label1.caption=label(0)时。我不知道是否使用文件路径创建另一个数组,我想我可以这样做,但如果有人知道其他方法,请让mw知道

我投票结束这个问题,认为它不适合StackOverflow,因为这是一个关于对象如何运行的一般性问题,例如,什么是合适的语法。我本可以将其列为“过于宽泛的”,因为这会提出不止一个问题,但根据最初的一般问题,我选择了一个说明这可能更适合超级用户网站的问题。我现在将尝试触及几个问题。。。在
userform
中,可以使用
Me
引用该用户表单。如果我想引用userform上的对象,我可以编写
Me.Controls()
,其中
Controls()
是一个通用列表,可以使用给定控件的名称。在某些情况下,使用
Me.Controls()
而不是对控件的速记引用是合适的,因为当表单上有大量控件时,用户表单脚本中存在限制。希望最后一个。。。见关于第3点。