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
|