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