usuarios - trabajar simultaneamente en excel
Combine mĂșltiples libros de trabajo de Excel en un solo libro de trabajo (2)
Lo siguiente lleva a cabo la tarea.
Option Explicit
Private Sub CommandButton1_Click()
Dim directory As String, fileName As String, sheet As Worksheet, total As Integer
Dim WrdArray() As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = "c:/test/"
fileName = Dir(directory & "*.xl??")
Do While fileName <> ""
Workbooks.Open (directory & fileName)
WrdArray() = Split(fileName, ".")
For Each sheet In Workbooks(fileName).Worksheets
Workbooks(fileName).ActiveSheet.Name = WrdArray(0)
total = Workbooks("import-sheets.xlsm").Worksheets.Count
Workbooks(fileName).Worksheets(sheet.Name).Copy after:=Workbooks("import-sheets.xlsm").Worksheets(total)
GoTo exitFor:
Next sheet
exitFor:
Workbooks(fileName).Close
fileName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Soy un principiante en Visual Basic. Puedo usar Excel 2010 o Excel 2013 para esta tarea.
Tengo docenas de libros de trabajo con datos en la primera hoja de trabajo de cada uno. Por ejemplo, One.xlsx, Two.xlsx, Three.xlsx, Four.xlsx contienen información sobre sus respectivas Sheet1.
Necesito que la información en Sheet1 de cada libro de trabajo se combine en un solo libro de trabajo con hojas que se nombran desde el nombre de archivo del libro de trabajo original. Entonces, por ejemplo, combined.xlsx tendría 4 hojas llamadas One, Two, Three, Four. En todos los casos, toda la información en las hojas de trabajo subyacentes debe copiarse y combinarse en el nuevo Libro de trabajo como se muestra a continuación.
- El formato que necesito
Encontré este Macro / Add-In en línea que me acerca a lo que necesito usando los archivos abiertos para agregar en la opción.
http://www.excelbee.com/merge-excel-sheets-2010-2007-2013#close
El complemento de Open Files me permite agregar las hojas de trabajo del Workbook en un solo libro de trabajo. Sin embargo, las pestañas no se nombran a partir del nombre del archivo original.
- Correcta agregación de hojas, pero nombres incorrectos de la hoja de trabajo.
Por ahora, todos los libros de trabajo subyacentes estarán en la misma carpeta. La capacidad de examinar y seleccionar los archivos sería agradable si esto cambia alguna vez, pero si eso es demasiado difícil, simplemente indicaría que la ruta del directorio en el código de Visual Basic funcionaría. En cuanto a la salida combinada resultante probablemente debería ser un nuevo libro de trabajo, el nombre del archivo del nuevo libro de trabajo no es tan importante. Podría llamarse combined.xlsx, por ejemplo.
En Excel, presione Alt+F11
, esto abrirá el editor Excel VBA.
El artículo http://www.excel-spreadsheet.com/vba/debugging.htm explica algunos conceptos básicos de cómo usarlo.
En el Module1
hay 2 opensheets
abreviadas de abreviaturas opensheets
y una merge
contiene ~ 50 líneas de código.
Use F1
con el cursor dentro de las palabras que no entiende, para saber lo que significa.
Una vez que comprenda lo que hace el código, puede adaptarlo a sus necesidades.