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:
|
Opzione esplicita
sFolder pubblico come stringa
sFilename pubblico () come stringa
NFiles pubblico come numero intero
GetFileList secondario ()
varFileList fioco come variante
Oscurare la i come numero intero
“Ottenere l'indice dall'utente„
Con Application.FileDialog (msoFileDialogFolderPicker)
. Esposizione
Se .SelectedItems.Count = 0 allora escono il sommergibile “utente annullato„
sFolder = .SelectedItems (1)
Estremità con
“Ottenere una lista di tutte le lime in questo indice.„
“Notare che questo non è ricorsivo… anche se potrebbe essere…„
varFileList = GetFileNames (sFolder, “*.txt„)
Se non IsArray (varFileList) allora
MsgBox “nessun lime trovate. „, vbInformation
Uscire il sommergibile
Concluder se
“Installare l'allineamento di nome di schedario basato sull'indice selezionato„
NFiles = UBound (varFileList) + 1
sFilename di ReDim (1 a NFiles)
“Copiare i nomi di schedario in un allineamento della stringa per uso altrove„
Per i = 0 a UBound (varFileList)
sFilename (i + 1) = CStr (varFileList (i))
Dopo i
OutputFilenames2XL
ImportFileContent
Sommergibile dell'estremità
Funzione riservata GetFileNames (sPath di ByVal come stringa, sFilter facoltativo come stringa) come variante
“ Restituisce un allineamento unidimensionale con i nomi di schedario„
“ Restituisce al contrario falso„
F fioca come stringa
Oscurare la i come numero intero
Oscurare FileList () come stringa
Se sFilter = sFilter del "" allora = “*.*„
Selezionare il caso Right$ (sPath, 1)
Mettere “\„, “/„
sPath = Left$ (sPath, Len (sPath) - 1)
Estremità prescelta
Conserva FileList (0) di ReDim
f = Dir$ (sPath & “\„ & sFilter)
Fare mentre Len (f) > 0
Conserva FileList di ReDim (i) come stringa
FileList (i) = f
i = i + 1
f = Dir$ ()
Ciclo
Se FileList (0) <> allora svuota
GetFileNames = FileList
Altrimenti
GetFileNames = falso
Concluder se
Concludere la funzione
Sommergibile riservato OutputFilenames2XL ()
iBaseRow fioco come numero intero, iBaseCol come numero intero
shTarget fioco come manuale
Oscurare la i come numero intero
Regolare lo shTarget = Application.ActiveSheet
iBaseRow = gamma (“BaseCell„). Fila
iBaseCol = gamma (“BaseCell„). Colonna
“Popolare i campi di intestazione„
shTarget.Range (“ImportDate„). Valore = ora
shTarget.Range (“FolderPath„). Valore = sFolder
shTarget.Range (“NFiles„) = NFiles
“Popolare la colonna di nome di schedario della tabella„
Per i = 1 a NFiles
shTarget.Cells (iBaseRow + i - 1, iBaseCol). Valore = sFilename (i)
Dopo i
“Mettere la formula per analizzare l'identificazione di transazione nella prima colonna„
shTarget.Range (cellule (iBaseRow, iBaseCol - 1), cellule (iBaseRow + NFiles - 1, iBaseCol - 1)) .FormulaR1C1 = “=MID (R [0] C [1], LEN (R [0] C [1]) - 14.8)„
Sommergibile dell'estremità
ImportFileContent secondario riservato ()
Oscurare la i come numero intero, J come numero intero
Oscurare lo shTarget come manuale
Oscurare il iBaseRow come numero intero, iBaseCol come numero intero
Oscurare lo shSource come manuale
Oscurare il sActiveFilename come stringa
Oscurare lo sFullPath come stringa
Oscurare il iRowCount come numero intero
Oscurare il iTargetColumn come numero intero
Oscurare il rSourceRange come gamma
“Dati bassi del deposito per il manuale che dell'obiettivo stiamo costruendo„
Regolare lo shTarget = Application.ActiveSheet
iBaseRow = gamma (“BaseCell„). Fila
iBaseCol = gamma (“BaseCell„). Colonna
“Ora procedare ogni nome di schedario importato appena al manuale„
Application.ScreenUpdating = falso
Application.WindowState = xlMinimized
Application.Calculation = xlCalculationManual
Application.Visible = falso
“Barra di progresso di messa a punto„
frmProgress del carico
frmProgress.ProgressBar.Max = NFiles
frmProgress.ProgressBar.Value = 0
frmProgress.Show
Per i = 1 a NFiles
sActiveFilename = sFilename (i)
sFullPath = sFolder & “\„ & sActiveFilename
“Lima di testo delimitata importazione„
Nome di schedario di Workbooks.OpenText: =sFullPath, _
Origine: =437, StartRow: =1, DataType: =xlDelimited, TextQualifier: = _
xlDoubleQuote, ConsecutiveDelimiter: =False, linguetta: =True, punto e virgola: =False, _
Virgola: =False, spazio: =False, altro: =False, FieldInfo: =Array (1, 1), _
TrailingMinusNumbers: =True
“Immagazzinare il nome dello strato e la disposizione/aggiunge le formule richieste„
Regolare lo shSource = Application.ActiveSheet
iRowCount = Application.WorksheetFunction.CountA (colonne (“A: „))
shSource.Range (cellule (1, 2), cellule (iRowCount, 2)) .FormulaR1C1 = “=FIND ("": "", R [0] C [- 1])„
shSource.Range (cellule (1, 3), cellule (iRowCount, 3)) .FormulaR1C1 = “=IF (LASCIATO (R [0] C [- 2], "" di commento del "" 7)=, 61, VALORE (METÀ DI (R [0] C [- 2], 2, R [0] C [- 1] - 2)))„
shSource.Range (cellule (1, 4), cellule (iRowCount, 4)) .FormulaR1C1 = “=RIGHT (R [0] C [- 3], LEN (R [0] C [- 3]) - R [0] C [- 2] - 1)„
“Assicurar che le cellule siano aggiornate con i dati correnti (stati necessari soltanto se il calcolo è fissato al manuale)„
shSource.Calculate
“Ora copiano i dati analizzati risultanti nelle cellule corrette sul manuale dell'obiettivo„
Per J = 1 a iRowCount
iTargetColumn = CInt (shSource.Cells (J, 3).Value)
Regolare il rSourceRange = shSource.Cells (J, 4)
shTarget.Cells (iBaseRow + i - 1, iBaseCol + iTargetColumn). Valore = rSourceRange.Value
J seguente
“Infine fine la lima del libro di esercizi di fonte poiché siamo rifiniti con esso„
Libri di esercizi (sActiveFilename). SaveChanges vicino: =False
frmProgress.ProgressBar.Value = i
frmProgress.Repaint
Dopo i
shTarget.Columns (“C: BK„) .EntireColumn.AutoFit
frmProgress.Hide
Application.Calculation = xlCalculationAutomatic
Application.Calculate
Application.ScreenUpdating = allineano
Application.WindowState = xlMaximized
Application.Visible = allineano
Sommergibile dell'estremità
|