Red de conocimientos sobre prescripción popular - Remedios caseros - ¿Cómo usar VB para implementar Excel: sin abrir la hoja de trabajo, especifique el nombre del archivo y el nombre de la hoja de trabajo de acuerdo con la celda y haga referencia a los datos en el archivo correspondiente en la ruta especificada?

¿Cómo usar VB para implementar Excel: sin abrir la hoja de trabajo, especifique el nombre del archivo y el nombre de la hoja de trabajo de acuerdo con la celda y haga referencia a los datos en el archivo correspondiente en la ruta especificada?

La prueba se realizó bajo EXCEL2016, espero que te pueda ayudar. Es decir, obtener datos en lotes según el nombre del libro de trabajo en la primera fila y completar automáticamente el nombre de la hoja de trabajo correspondiente en la segunda fila (cada libro de trabajo solo contiene una tabla). ¡Asegúrese de hacer una copia de seguridad de sus datos antes de ejecutar el código! !

Subtest()

Atenuar cnn como objeto

Atenuar strPath, strTable, strSQL, Z como cadena, ss$, shtName como cadena

Desenfoque x%, i%

Establecer cnn = CreateObject("ADODB.Connection")

X = [xfd1]. final (xltolft). "columna" obtiene el número de columna correspondiente a la celda más a la derecha de la primera fila y calcula la cantidad de libros que se obtendrán.

Fila("2:25"). Borre los datos antiguos del almacén de datos.

Para i = 1 a x

z = Dir(" D:\DATA \DATA " & "\*.xlsx")

Cree Connect y extraer datos.

ss = celda(1,I). Valor y valor. ".xlsx "

Hacer mientras Z & lt& gt""

Si Z = ss, entonces

strPath = " D:\ DATA \ DATA " & amplificador " \ " & ampZ

cnn. Abra "provider=Microsoft.ACE.oledb.12.0;Extended Properties='Excel 12.0;hdr=No;imex=1';DataSource=" & ampstrPath

Establezca rst=cnn. Arquitectura abierta(20)

Shtname = rst.fields ("TABLE_name"). Valor 'Obtiene el nombre de la tabla de registros del tipo de tabla.

strTable = "[" & shtName & " A1:A18]"

strSQL = " select f 1 from " & Obtenga los datos en la primera columna de la tabla.

Celda(3,I). CopyFromRecordset de cnn. Ejecutar (strSQL)

Celdas (2, I) = left (shtname, len (shtname)-1)'Elimine el signo $ en el nombre de la tabla.

cnn. Cerrar

Terminará si...

Z = dirección

Anillo

Siguiente I

establecer arriba cnn = Ninguno

Conector final