Questione : Unire i manuali dai libri di esercizi differenti in un libro di esercizi using VB.Net

Ciao esperti.  Im che lotta con un certo numero di problemi con Excel 2007 e VB2008/3.5.  Quello principale è che devo ottenere gli strati da tre libri di esercizi differenti, cambiati titolo ed allora uniti in un libro di esercizi separato.  Ciò è l'intero strato, non varia da uno strato.  Chiunque ha un'idea per questo?  Molti ringraziamenti in anticipo class= del

Risposta : Unire i manuali dai libri di esercizi differenti in un libro di esercizi using VB.Net

Ho attaccato un certo codice che completerà l'operazione.  Lasciarlo sapere questo funziona.  Il codice funziona passando attraverso una lista dei percorsi della lima che assicurate in una gamma delle cellule.  Questo percorso deve avviarsi con la posizione dell'azionamento ed andare tutto il senso giù al nome di schedario con il relativo extention.

Esempio:

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

Potete fornire l'altretanto poichè gradireste.  L'unica limitazione qui è Excel può trattare soltanto gli strati 250ish.

Avete accennato gli strati che avete soltanto avere un manuale.  Ho strutturato il codice per prendere tutti manuali nel libro di esercizi appena nel caso che volete aggiungere più/che prendete più strati più successivamente.  Ciò è cambiata facilmente per prendere soltanto 1 strato se quella è la funzionalità voluta.

Il codice ora incolla i valori.  Lasciarlo sapere se lo volete cambiare il codice per incollare tutto compreso formattazione.

I libri di esercizi devono essere chiusi quando fate funzionare questa macro.  Sto lavorando ad alcuni cambiamenti ora per controllare se provengono già aperti e da là soltanto chiudono quei che non siano stati già aperti.  Inoltre sto lavorando ad un certo codice per prendere i nomi di schedario ed i nomi dello strato e per unirlo nella nomina del manuale nel nuovo libro di esercizi.  Ciò non può funzionare perché i nomi dello strato sono ricoperti a 32 caratteri.  Ho pensato che questa funzionalità fosse necessaria dopo le prove.  Ho trovato che il libro di esercizi consolidato ha avuto circa strati un dozzina ed era duro da tenerseli al corrente di.  Lasciarlo sapere se non volete questo.

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 i getSheetsFromBooks ()

Oscurare la lima, nomi di schedario come gamma di gamma 'dei nomi della lima
Oscurare la WS, il newWS, currentWorksheet come manuale
Oscurare il assemblyWorkbook, dataWorkbook come libro di esercizi
Il dataWorkbookName fioco come stringa 'userà questo per chiamare gli strati in nuovo WB
screenUpdate fioco, displayAlerts come booleani

Regolare i nomi di schedario = Application.Selection
Regolare il assemblyWorkbook = Application.ActiveWorkbook
Regolare il currentWorksheet = Application.ActiveSheet

screenUpdate = Application.ScreenUpdating
Application.ScreenUpdating = falso

displayAlerts = Application.displayAlerts
Application.displayAlerts = falso

'collegare per ripetere sopra i nomi della lima
Per ogni lima nei nomi di schedario
    
    Regolare il dataWorkbook = Workbooks.Open (lima. Valore)
    dataWorkbook.Activate
    
    'ciclo per copiare i manuali
    Per l'ogni WS in ActiveWorkbook.Worksheets
        
        la WS. Attivare
        Cells.Copy
        assemblyWorkbook.Activate
        Regolare il newWS = Worksheets.Add (dopo: =Sheets (Sheets.Count))
        Gamma (“A1„). Attivare
        Colla di ActiveCell.PasteSpecial: =xlPasteValues
        
        'chiamando i manuali
        'Con newWS
        '    . Nome = dataWorkbookName
        'Estremità con
        
        Gamma (“A1„). Prescelto
        dataWorkbook.Activate

    Dopo
    'libro di esercizi vicino
    dataWorkbook.Close
Dopo

'andare indietro al manuale che avete iniziato il programma sopra
currentWorksheet.Activate

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

Regolare la lima = niente
Fissare i nomi di schedario = niente
Regolar la WS = niente
Regolare il newWS = niente
Regolare il assemblyWorkbook = niente
Regolare il dataWorkbook = niente

Concludere il sommergibile
Altre soluzioni  
 
programming4us programming4us