¿Cómo poner datos de muchos otros archivos de Excel en una tabla de Excel usando Excel VBA?
Agregue un módulo y copie el siguiente código:
'*************** * *************************************************
Función: busque todos los nombres de archivos (incluidas las rutas) en la carpeta especificada (incluidas las subcarpetas).
Nombre de la función:? FileAllArr
Parámetro 1: nombre de archivo. ¿El nombre de la carpeta que necesita encontrar? Excluyendo el último "\"
Parámetro 2: ¿filtro de archivos? El nombre del archivo que se va a filtrar se puede omitir y el valor predeterminado es [*. *].
Nombre de archivo del parámetro 3:3: Salvo excepciones, se puede omitir. El valor predeterminado es: vacío, normalmente: ThisWorkbook. Nombre
Valor de retorno:? Un conjunto de caracteres
Cómo utilizar: arr? =?FileAllArr(ThisWorkbook.Path,?"*.xls",This workbook.Name)
¿Público? ¿Función? FileAllArr(ByVal?FileName?As?String,?Optional?ByVal?FileFilter?As?String?=?"*.*",?Optional?ByVal?Inside?As?String?=?"" )?como? Cadena()
¿Configuración? ¿Dic? =?Createobject("Script.' Crea un objeto de diccionario.
¿Configuración? ¿Hay alguna? =?CreateObject("Script.Dictionary》)
¿Suplemento de Dic.? (Nombre de archivo ? &? "\"),?""
¿Qué? p>Ke? =?'DIC .keys'Empezar a recorrer el diccionario. Ke(i),?VbDirectory)'¿Qué hacer? ¿Mi nombre? ""
¿Mi nombre? ". )?& ?Mi nombre)? if
¿Mi nombre? =?Dir 'Continuar recorriendo la búsqueda.
¿Yo ?1
ring
¿Yo? =?0
¿tenue? línea
¿Para qué? ¿Dónde está la clave del centro de información del controlador?
¿Mi nombre de archivo? .xls para EXCEL2003 y *.xlsx para Excel 2007.
¿Qué hacer? ¿cuando? ¿Mi nombre de archivo? <>? ""
¿Y si? ¿Mi nombre de archivo? <>? ¿Dentro y fuera? ¿Entonces qué? ¿Excluir archivos anormales
Radim? ¿ahorrar? arrx(一)
arrx(i)? =?Ke? y amplificador? Mi nombre de archivo
¿Yo? =?Yo? +?1
¿Fin? ¿Qué pasa si
Mi nombre de archivo? =?Directorio
Timbre
Entonces
FileAllArr? =?arrx
¿Fin? Función
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Sub? Opiona()? // Instancia de función
¿Dim? ¿SP? ¿Como? cadena,? ¿WB? ¿Como? Libro de trabajo
sP? =?"E:\VB Fusionar Excel\tmp con las mismas especificaciones"? Ruta a muchos archivos de Excel, excluyendo el último \
arr? =?FileAllArr(sP,"*.xls",este libro de trabajo.Nombre)
Aplicar. ¿Actualización de pantalla? =?Incorrecto
¿Para qué? ¿I? =?0?¿Adónde ir? ¿Te debo
MsgBox? arr(1)
¿Configuración? ¿WB? =?Libro de ejercicios. Abra(arr(i))
su código
este libro de trabajo. Hoja de trabajo(1). celda(i?+?1,?1).valor? =?WB. Hoja de trabajo(1). rango(" T1000 "). final (xlArriba). Valor
WB. Ventanas(1). ¿visible? =?WB incorrecto
. ¿cerca? Incorrecto
Entonces
Aplicar. ¿Actualización de pantalla? =?Real
¿Fin? La ruta del archivo anterior a Sub debe cambiarla usted mismo. El código principal para obtener datos se explica a continuación:
Este libro de trabajo. Hoja de trabajo(1). celda (i+1,1). valor = wb. Hoja de trabajo(1). rango(" T1000 "). final (xlArriba). Valor
¿Tomar el valor del último valor de la columna T del archivo abierto? Asignado a la celda en la hoja de acción Hoja1.
Si la ubicación de los datos en cada Excel es fija, como T10, puedes cambiar directamente el código a:
Este libro. Hoja de trabajo(1). celda (i+1,1). valor = wb. Hoja de trabajo(1). rango ("T10"). Valor