Cuestión : Combinar las hojas de trabajo de diversos libros de trabajo en un libro de trabajo usar VB.Net

Hola expertos.  Im que lucha con un número de problemas con Excel 2007 y VB2008/3.5.  El principal es que necesito conseguir las hojas a partir de tres diversos libros de trabajo, retituladas y después combinadas en un libro de trabajo separado.  Ésta es la hoja entera, no se extiende de una hoja.  ¿Cualquier persona tiene una idea para esto?  Muchas gracias por adelantado class= del

Respuesta : Combinar las hojas de trabajo de diversos libros de trabajo en un libro de trabajo usar VB.Net

He atado un cierto código que terminará la tarea.  Dejarme saber esto trabaja.  El código funciona pasando a través de una lista de trayectorias del archivo que usted proporcione en una gama de células.  Esta trayectoria debe comenzar con la localización de la impulsión e ir hasta el final abajo al nombre de fichero con su extention.

Ejemplo:

C:\Users\Matthew Sheskey \ mesa \ ExcelImport.xlsx

Usted puede proporcionar tanto pues usted quisiera.  La única restricción aquí es Excel puede manejar solamente las hojas 250ish.

Usted mencionó las hojas que usted tiene solamente tener una hoja de trabajo.  Estructuré el código para tomar todas las hojas de trabajo en el libro de trabajo apenas en caso que usted quiere agregar más/que toma más hojas más adelante.  Esto se cambia fácilmente para tomar solamente 1 hoja si ésa es la funcionalidad deseada.

El código ahora pega valores.  Dejarme saber si usted quisiera que cambiara el código para pegar todo incluyendo el formato.

Los libros de trabajo deben ser cerrados cuando usted funciona con esta macro.  Estoy trabajando en algunos cambios ahora para comprobar si son ya abiertos y de allí cierran solamente los que no estaban ya abiertos.  También estoy trabajando en un cierto código para tomar los nombres de fichero y los nombres de la hoja y para combinarlos en el nombramiento de la hoja de trabajo en el nuevo libro de trabajo.  Esto puede no trabajar porque los nombres de la hoja se capsulan en 32 carácteres.  Pensé que esta funcionalidad era necesaria después de probar.  Encontré que el libro de trabajo consolidado tenía o así que hojas una docena y que era duro no perderlas de vista.  Dejarme saber si usted no quiere esto.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
Sub los getSheetsFromBooks ()

Amortiguar el archivo, nombres de fichero como gama de gama 'de nombres del archivo
Amortiguar a WS, newWS, currentWorksheet como hoja de trabajo
Amortiguar el assemblyWorkbook, dataWorkbook como libro de trabajo
El dataWorkbookName dévil como secuencia 'utilizará esto para nombrar las hojas en el nuevo WB
screenUpdate dévil, displayAlerts como boleanos

Fijar los nombres de fichero = Application.Selection
Fijar el assemblyWorkbook = Application.ActiveWorkbook
Fijar el currentWorksheet = Application.ActiveSheet

screenUpdate = Application.ScreenUpdating
Application.ScreenUpdating = falso

displayAlerts = Application.displayAlerts
Application.displayAlerts = falso

'colocar para iterar sobre nombres del archivo
Para cada archivo en nombres de fichero
    
    Fijar el dataWorkbook = Workbooks.Open (archivo. Valor)
    dataWorkbook.Activate
    
    'lazo para copiar las hojas de trabajo
    Para cada WS en ActiveWorkbook.Worksheets
        
        WS. Activar
        Cells.Copy
        assemblyWorkbook.Activate
        Fijar el newWS = Worksheets.Add (después: =Sheets (Sheets.Count))
        Gama (“A1”). Activar
        Goma de ActiveCell.PasteSpecial: =xlPasteValues
        
        'nombrando las hojas de trabajo
        'Con el newWS
        '    . Nombre = dataWorkbookName
        'Extremo con
        
        Gama (“A1”). Selecto
        dataWorkbook.Activate

    Después
    'libro de trabajo cercano
    dataWorkbook.Close
Después

'volver a la hoja de trabajo que usted comenzó el programa encendido
currentWorksheet.Activate

Application.CutCopyMode = falso
Application.ScreenUpdating = screenUpdate
Application.ScreenUpdating = displayAlerts

Fijar el archivo = nada
Fijar los nombres de fichero = nada
Fijar WS = nada
Fijar el newWS = nada
Fijar el assemblyWorkbook = nada
Fijar el dataWorkbook = nada

Terminar el submarino
Otras soluciones  
 
programming4us programming4us