Questione : Strati dell'associazione in libro di esercizi

Ho avuto un libro di esercizi di supremazia che ha 6 necessità del worksheets

Sheet A
Sheet B
Sheet C
Sheet D
Sheet E
Combined

I di unire tutti i dati in ogni strato A, B, C, D, & E in un manuale.  I dati che devo copiare gli inizio sulla fila 4; tuttavia, ogni manuale si conclude ad una fila differente (in grado di cambiare il settimanale).  Come faccio selezionare la prima fila, che è fila 4; allora la copia giù all'ultima fila con data.

I ha attaccato una lima in moda da poterlo vedere voi che gli strati originali ed il manuale unito è a che cosa tutte le lime dovrebbero assomigliare quando completed.
class= " lastRow del
>Attachments " di nome " del class= del class= " valore " del
il

class= " fileInfo " del
il title= " " di nome di schedario del class= " di Test-Constraints.xlsx il class= (44 KB)  Javascript " del href= " " dei attachmentDetails del class= di (tipo di lima particolari)  
class= " descrizione " del
Campione File
il class= di
del >
class= del

Risposta : Strati dell'associazione in libro di esercizi


Ho modificato il mio codice dal http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/A_2804-Code-to-compile-all-worksheets-from-either-a-all-Excel-workbooks-in-a-folder-or-b-a-specific-Excel-workbook.html

Pls si allontana questo codice da una lima separata, passa in rassegna come chiesto alla vostra lima chiusa di Test_Constraints e funziona

Acclamazioni

Dave
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:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
ConsolidateSheets secondario pubblico ()
    Wb1 fioco come libro di esercizi
    Wb2 fioco come libro di esercizi
    Ws1 fioco come manuale
    Ws2 fioco come manuale
    Ws3 fioco come manuale
    Rng1 fioco come gamma
    Rng2 fioco come gamma
    Rng3 fioco come gamma
    rngArea fioco come gamma
    lrowSpace fioco come lungamente
    lSht fioco come lungamente
    lngCalc fioco come lungamente
    lngRow fioco come lungamente
    lngCol fioco come lungamente
    X fioca ()
    bProcessFolder fioco come booleano
    bNewSheet fioco come booleano

    StrPrefix fioco
    strFileName fioco come stringa
    strFolderName fioco come stringa

    'la dichiarazione variabile ha dovuto affinchè l'oggetto di Shell usi un indice di difetto
    strDefaultFolder fioco come variante


    bProcessFolder = Application.InputBox (“procedare un singolo dispositivo di piegatura (ALLINEARE),„ & vbNewLine & “o singola lima (FALSA)„, “portata di applicazione: Il dispositivo di piegatura o la singola lima„, “allinea„, 4)
    bNewSheet = Application.InputBox (“estrarre tutti i dati ad un singolo strato (ALLINEARE),„ & vbNewLine & “o uno strato dell'archivio in obbiettivo per ogni strato di fonte (FALSO)„, “disposizione dell'uscita: Il singolo strato o lo strato dall'accumulazione dello strato„, “allinea„, 4)
    Se non bProcessFolder allora
        Se non bNewSheet allora
            MsgBox “là non è molto punto che genera una replica esatta del vostro archivio sorgente:)„
            Uscire il sommergibile
        Concluder se
    Concluder se

    'regolare l'indice di difetto qui se avuto bisogno di
    strDefaultFolder = “C:\temp„

    'Se l'utente stia fascicolando tutti gli strati ad un singolo strato dell'obiettivo allora il gioco di fila
    'distinguere fra gli strati differenti può essere regolata qui
    lrowSpace = 0

    Se bProcessFolder allora
        strFolderName = BrowseForFolder (strDefaultFolder)
        'Cercare i xls, il xlsx, lime del xlsm
        strFileName = Dir (strFolderName & “\ *.xls*")
    Altrimenti
        strFileName = _ di applicazione
                      .GetOpenFilename (“lima prescelta da procedare (*.xls), *.xls„)
    Si concludono se

    Regolar Wb1 = Workbooks.Add (1)
    Regolar ws1 = Wb1.Sheets (1)
    Se non bNewSheet allora ws1.Range (“A1: B1„) = allineamento (“nome del libro di esercizi„, “conteggio del manuale„)

    'Girare fuori screenupdating, gli eventi, gli allarmi ed il calcolo dell'insieme verso il manuale
    Con l'applicazione
        .DisplayAlerts = falso
        .EnableEvents = falso
        .ScreenUpdating = falso
        lngCalc =. Calcolo
        . Calcolo = xlCalculationManual
    Estremità con

    'regolare il percorso fuori del ciclo
    StrPrefix = strFolderName & IIf (bProcessFolder, “\„, vbNullString)

    Fare mentre Len (strFileName) > 0
        'Fornire la condizione di progresso all'utente
        Application.StatusBar = ha andato (“procedare„ & strFolderName & “\„ & strFileName, 255)
        'Aprire ogni libro di esercizi nel dispositivo di piegatura di interesse
        Regolar Wb2 = Workbooks.Open (StrPrefix & strFileName)
        Se non bNewSheet allora
            'aggiungere i particolari sommari al primo strato
            ws1.Cells (Rows.Count, “A„). Estremità (xlUp). Contrappeso (1, 0) = Wb2.Name
            ws1.Cells (Rows.Count, “A„). Estremità (xlUp). Contrappeso (0, 1) = Wb2.Sheets.Count
        Concluder se
        Per ogni ws2 in Wb2.Sheets
            Se bNewSheet allora
                'Tutti i dati ad un singolo strato
                'Saltare importando i dati dello strato dell'obiettivo se lo strato di fonte è in bianco
                Regolar rng2 = ws2.Cells.Find (“*„, ws2. [a1], xlValues, xlByRows, xlPrevious)

                Se non rng2 allora è niente
                    Regolar rng1 = ws1.Cells.Find (“*„, ws1. [a1], xlValues, xlByRows, xlPrevious)
                    'Trovare la prima fila dello spazio in bianco sullo strato dell'obiettivo
                    Se non rng1 allora è niente
                        Regolar rng3 = ws2.Range (ws2.UsedRange.Cells (1), ws2.Cells (rng2.Row, “A„))
                        'Accertar che la zona di fila nello strato dell'obiettivo non sia oltrepassata
                        Se rng3.Rows.Count + rng1.Row < Rows=""> 0 allora ws1.Rows (rng1.Row + 1).Interior.Color = vbGreen
                    Altrimenti
                        'lo strato dell'obiettivo è così copia vuota alla prima fila
                        ws2.UsedRange.Copy ws1.Cells (1, ws2.UsedRange.Cells (1).Column)
                    Concluder se
                Concluder se
            Altrimenti
                'nuovo strato dell'obiettivo per ogni strato di fonte
                ws2.Copy dopo: =Wb1.Sheets (Wb1.Sheets.Count)
                'Rimuovere tutti i collegamenti in nostro strato dell'obiettivo
                Con Wb1.Sheets (Wb1.Sheets.Count). Cellule
                    . Copia
                    xlPasteValues di .PasteSpecial
                Estremità con
                Sul riassunto di errore dopo
                Wb1.Sheets (Wb1.Sheets.Count). Nome = ws2.Name
                'il nome dello strato già esiste in libro di esercizi dell'obiettivo
                Se Err.Number <> 0 allora
                    'Aggiungere un numero al nome dello strato finchè un nome unico è derivato
                    Fare
                        lSht = lSht + 1
                        Regolar ws3 = Wb1.Sheets (ws2.Name & ““& lSht)
                    Collegare mentre non ws3 è niente
                    lSht = 0
                Concluder se
                Sull'errore 0 di avanzamento
            Concluder se
        Ws2 seguente
        'Vicino il libro di esercizi aperto
        Wb2.Close falso
        'Controllare se forzare la a collegano l'uscita in circuito se procedando una singola lima
        Se il bProcessFolder = falso allora esce fare
        strFileName = Dir
    Ciclo

    'Rimuovere tutti i collegamenti se l'utente abbia usato uno strato dell'obiettivo
    Se bNewSheet allora
        Con ws1.UsedRange
            . Copia
            . Cellule (xlPasteValues 1).PasteSpecial
            . Cellule (1).Activate
        Estremità con
    Altrimenti
        'Formattare lo strato sommario se l'utente abbia generato gli strati separati dell'obiettivo
        ws1.Activate
        ws1.Range (“A1: B1„). Font.Bold = allineano
        ws1.Columns.AutoFit
    Concluder se

    Con l'applicazione
        .CutCopyMode = falso
        .DisplayAlerts = allineano
        .EnableEvents = allineano
        .ScreenUpdating = allineano
        . Calcolo = lngCalc
        .StatusBar = vbNullString
    Estremità con
Sommergibile dell'estremità


Funzione BrowseForFolder (OpenAt facoltativo come variante) come variante
'Dai Puls del Ken come utilizzati nel suo articolo di vbaexpress.com
'http://www.vbaexpress.com/kb/getarticle.php?kb_id=284

    ShellApp fioco come oggetto
    'Generare una finestra di browser della lima al dispositivo di piegatura di difetto
    Regolare ShellApp = CreateObject (“Shell.Application„). _
                   BrowseForFolder (0, “sceglie prego un dispositivo di piegatura„, 0, OpenAt)

    'Regolare il dispositivo di piegatura a quello selezionato.  (Sull'errore nel caso annullato)
    Sull'errore riprendere dopo
    BrowseForFolder = ShellApp.self.Path
    Sull'errore 0 di avanzamento

    'Distruggere l'applicazione di Shell
    Regolare ShellApp = niente

    'Controllare per vedere se c'è non valido o non-entrate e trasmettere all'errore non valido
    'alimentatore se trovato
    'Le selezioni valide possono cominciare la L: (dove la L è una lettera) o
    '\ \ (come in \ \ servername \ sharename.  Tutti gli altri sono non validi
    Selezionare il caso metà di (BrowseForFolder, 2, 1)
    Il caso è = “: „
        Se andato (BrowseForFolder, 1) = “: „ Non valido allora di avanzamento
    Il caso è = “\„
        Se non andato (BrowseForFolder, 1) = “\„ non valido allora di avanzamento
    Caso altrimenti
        Non valido di avanzamento
    Estremità prescelta

    Uscire la funzione

Non valido:
    'Se sia determinato che la selezione era non valida, si è regolato a falso
    BrowseForFolder = falso
Funzione di conclusione
Altre soluzioni  
 
programming4us programming4us