Colección de citas famosas - Slogan de motivación - ¿Cómo poner datos de muchos otros archivos de Excel en una tabla de Excel usando Excel VBA?

¿Cómo poner datos de muchos otros archivos de Excel en una tabla de Excel usando Excel VBA?

Si todos los demás archivos de Excel están en el mismo directorio,

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