我正在尝试创建一个带有多个组合框的用户窗体,这些组合框将从另一个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
如您所见,我尝试使用与标签相同的方法来执行此操作,并创建了一个包含文件路径的数组。 然后在循环中,我为“ file”变量分配一个值,该值将根据循环而变化。
有人可以告诉我为什么它不起作用,我该怎么办吗?