Excel 如何更改每个循环的变量
我正在尝试创建一个带有多个组合框的userform,这些组合框从另一个excel工作簿中获取值 目前,我的代码创建标题标签取决于我称之为“标签”的数组的值。对于每个标签,我需要打开一个特定的文件,并从中获取组合框值。例如,如果我在第一个循环中,我的数组值将是“Dirección”,那么我需要下一行代码打开一个名为departmentos.xlsx的excel工作簿并从中获取值,如果我在第二个循环中,我将需要打开另一个名为Empresas.xlsx的excel工作簿,以此类推 这是我认为的代码,但我不知道这有什么错,因为vba返回我一个运行时错误“91” 正如您所看到的,我尝试使用与标签相同的方法,创建了一个包含文件路径的数组。 然后在循环内部,我为“file”变量指定一个值,该变量将根据循环的不同而变化Excel 如何更改每个循环的变量,excel,vba,combobox,Excel,Vba,Combobox,我正在尝试创建一个带有多个组合框的userform,这些组合框从另一个excel工作簿中获取值 目前,我的代码创建标题标签取决于我称之为“标签”的数组的值。对于每个标签,我需要打开一个特定的文件,并从中获取组合框值。例如,如果我在第一个循环中,我的数组值将是“Dirección”,那么我需要下一行代码打开一个名为departmentos.xlsx的excel工作簿并从中获取值,如果我在第二个循环中,我将需要打开另一个名为Empresas.xlsx的excel工作簿,以此类推 这是我认为的代码,但
有人能告诉我为什么它不工作,我能做些什么吗?注意-为什么要在循环之外关闭文件?因为我只想打开文件以获取该文件中的值。在那之后,我不想让它保持打开状态。但是你应该在循环中关闭它,对吗?哦,是的,我没有意识到。谢谢,但如果我关闭循环内的文件,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