varios usuarios trabajen trabajar simultaneamente que permitir mismo macro libros libro dividir compartir como colaborativo coautoria excel vba excel-vba

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.