ProcessFromFolder secundario ()
'Esta macro abre cada archivo alternadamente y extrae los datos de ella, la registra en la base de datos,
'cierra el archivo, y se mueve encendido al archivo siguiente. La macro también registra el nombre de fichero de modo que
'procesará solamente un archivo si no se ha procesado antes. Utiliza una “colección” para
'los nombres del archivo.
Fso dévil como objeto, fld como objeto, fil como objeto
Coll dévil como nueva colección
FileListWs dévil como hoja de trabajo
SourceWs dévil como hoja de trabajo
SourceWb dévil como libro de trabajo
DestWs dévil como hoja de trabajo
TotFiles dévil como de largo
Contador dévil como de largo
WasOpen dévil como boleano
Amortiguar i como de largo
Amortiguar el rowe como de largo
Amortiguar la columna como de largo
Amortiguar el lastrow como de largo
Amortiguar el errorflag como secuencia
Application.ScreenUpdating = falso
errorflag = ""
'Determinar los archivos procesados ya
Fijar FileListWs = ThisWorkbook.Worksheets (la “lista del archivo”)
Fijar DestWs = ThisWorkbook.Worksheets (la “base de datos”)
Con FileListWs
TotFiles = Application.CountA (. [a: a])
Si TotFiles > 0 entonces
Para el contador = 1 a TotFiles
coll. Agregar. Células (contrarias, 1). Células (contrarias, 1)
Después
Terminar si
Terminar con
'mirar la carpeta
Fijar el fso = CreateObject (“Scripting.FileSystemObject”)
'poner la trayectoria llena a la carpeta que contiene ficheros de datos en la línea de código siguiente
Fijar el fld = fso.GetFolder (“C:\Documents and Settings\Patrick y Thuc-Nghi \ mis los documentos \ archivos \ CaptG de Patrick \ de Excel \ ")
Para cada fil en fld. Archivos
En curriculum vitae del error después
coll. Agregar el fil. Nombre, fil. Nombre
Si entonces <> yerra 0
el 'archivo procesado ya, no hace nada
Err.Clear
'no procesado todavía; procesarlo
Con FileListWs
Si TotFiles = 0 entonces
. [A2] = fil. Nombre
'. Células (. Rows.Count, 1).End (xlUp). Compensación (1, 0) = fil. Nombre
. Células (65536, 1).End (xlUp). Compensación (1, 0) = fil. Nombre
Terminar si
Terminar con
'ver si está ya abierto
Fijar SourceWb = los libros de trabajo (fil. Nombre)
Si entonces <> yerra 0
'no estaba abierto
WasOpen = falso
Fijar SourceWb = Workbooks.Open (fil. Trayectoria)
WasOpen = verdad
Terminar si
Fijar SourceWs = SourceWb.Sheets (1)
Con SourceWs
. Gama (. Células (2, “A”). Células (. Rows.Count, “A”). Extremo (xlUp). Compensación (0, 14)). Copiar el _
DestWs.Cells (DestWs.Rows.Count, “A”). Extremo (xlUp). Compensación (1, 0)
Extremo con
errorflag = ""
Si no WasOpen entonces SourceWb.Close falso
Terminar si
Después
Fijar el coll = nada
Fijar el fil = nada
Fijar el fld = nada
Fijar el fso = nada
Application.ScreenUpdating = verdad
MsgBox “hecho”
Submarino del extremo
|