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:
|
Expliciete optie
Openbare sFolder als Koord
Openbare sFilename () als Koord
Openbare NFiles als Geheel
Sub GetFileList ()
Schemerige varFileList als Variant
Schemerige I als Geheel
„Krijg de folder van de gebruiker“
Met Application.FileDialog (msoFileDialogFolderPicker)
. Toon
Als .SelectedItems.Count = 0 dan Sub „geannuleerde gebruiker“ weggaan
sFolder = .SelectedItems (1)
Eind met
„Krijg een lijst van alle dossiers in deze folder.“
„Merk op dat dit niet recursief… is hoewel het zou kunnen zijn…“
varFileList = GetFileNames (sFolder, „*.txt“)
Als niet IsArray (varFileList) toen
MsgBox „Geen gevonden dossiers. “, vbInformation
Sub van de uitgang
Eind als
„Opstelling de filename serie op de geselecteerde folder“ wordt gebaseerd die
NFiles = UBound (varFileList) + 1
ReDim sFilename (1 aan NFiles)
„Exemplaar filenames in een koordserie voor gebruik elders“
Voor I = 0 aan UBound (varFileList)
sFilename (I + 1) = CStr (varFileList (I))
Volgende I
OutputFilenames2XL
ImportFileContent
Sub van het eind
Privé Functie GetFileNames (ByVal sPath als Koord, Facultatieve sFilter als Koord) als Variant
„ Keert een ééndimensionale serie met filenames terug“
„ Keert anders Vals terug“
Schemerig F als Koord
Schemerige I als Geheel
Schemerige FileList () als Koord
Als sFilter = "" toen sFilter = „*.*“
Selecteer Geval Right$ (sPath, 1)
Geval „\“, „/“
sPath = Left$ (sPath, Len (sPath) - 1)
Uitgezocht eind
Het Domein FileList van ReDim (0)
F = Dir$ (sPath & „\“ & sFilter)
Doe terwijl Len (F) > 0
Het Domein FileList van ReDim (I) als Koord
FileList (I) = F
i = I + 1
F = Dir$ ()
Lijn
Als Lege FileList (0 <> ) toen
GetFileNames = FileList
Anders
GetFileNames = Vals
Eind als
De Functie van het eind
Privé SubOutputFilenames2XL ()
Schemerige iBaseRow als Geheel, iBaseCol als Geheel
Schemerige shTarget als Aantekenvel
Schemerige I als Geheel
Reeks shTarget = Application.ActiveSheet
iBaseRow = Waaier („BaseCell“). Rij
iBaseCol = Waaier („BaseCell“). Kolom
„Bevolk de kopbalgebieden“
shTarget.Range („ImportDate“). Waarde = nu
shTarget.Range („FolderPath“). Waarde = sFolder
shTarget.Range („NFiles“) = NFiles
„Bevolk filename kolom van de lijst“
Voor I = 1 aan NFiles
shTarget.Cells (iBaseRow + I - 1, iBaseCol). Waarde = sFilename (I)
Volgende I
„Gezette formule om transactieidentiteitskaart in eerste kolom“ te ontleden
shTarget.Range (Cellen (iBaseRow, iBaseCol - 1), Cellen (iBaseRow + NFiles - 1, iBaseCol - 1)).FormulaR1C1 = „=MID (R [0] C [1], LEN (R [0] C [1]) - 14.8)“
Sub van het eind
Privé SubImportFileContent ()
Schemerige I als Geheel, j als Geheel
Schemerige shTarget als Aantekenvel
Schemerige iBaseRow als Geheel, iBaseCol als Geheel
Schemerige shSource als Aantekenvel
Schemerige sActiveFilename als Koord
Schemerige sFullPath als Koord
Schemerige iRowCount als Geheel
Schemerige iTargetColumn als Geheel
Schemerige rSourceRange als Waaier
„De basisgegevens van de opslag voor het doelaantekenvel bouwen wij“
Reeks shTarget = Application.ActiveSheet
iBaseRow = Waaier („BaseCell“). Rij
iBaseCol = Waaier („BaseCell“). Kolom
„Verwerk nu elke die filename enkel in het aantekenvel“ wordt ingevoerd
Application.ScreenUpdating = Vals
Application.WindowState = xlMinimized
Application.Calculation = xlCalculationManual
Application.Visible = Vals
„De vooruitgangsbar van de opstelling“
Lading frmProgress
frmProgress.ProgressBar.Max = NFiles
frmProgress.ProgressBar.Value = 0
frmProgress.Show
Voor I = 1 aan NFiles
sActiveFilename = sFilename (I)
sFullPath = sFolder & „\“ & sActiveFilename
De „invoer afgebakend tekstdossier“
Workbooks.OpenText Filename: =sFullPath, _
Oorsprong: =437, StartRow: =1, DataType: =xlDelimited, TextQualifier: = _
xlDoubleQuote, ConsecutiveDelimiter: =False, Lusje: =True, Puntkomma: =False, _
Komma: =False, Ruimte: =False, andere: =False, FieldInfo: =Array (1, 1), _
TrailingMinusNumbers: =True
De „opslag de het bladnaam en formaat/voegt vereiste formules toe“
Reeks shSource = Application.ActiveSheet
iRowCount = Application.WorksheetFunction.CountA (Kolommen („A: “))
shSource.Range (Cellen (1, 2), Cellen (iRowCount, 2)).FormulaR1C1 = „=FIND ("": "", R [0] C [- 1])“
shSource.Range (Cellen (1, 3), Cellen (iRowCount, 3)).FormulaR1C1 = „VERLATEN =IF ((R [0] C [- 2], 7) = ""- Commentaar "", 61, MEDIO VALUE ((R [0] C [- 2], 2, R [0] C [- 1] - 2)))“
shSource.Range (Cellen (1, 4), Cellen (iRowCount, 4)).FormulaR1C1 = „=RIGHT (R [0] C [- 3], LEN (R [0] C [- 3]) - R [0] C [- 2] - 1)“
„Zorg ervoor de cellen met de huidige slechts nodig gegevens (als de berekening aan handboek)“ wordt geplaatst worden bijgewerkt
shSource.Calculate
„Kopi�ër nu de resulterende ontlede gegevens in de correcte cellen over het doelaantekenvel“
Voor j = 1 aan iRowCount
iTargetColumn = CInt (shSource.Cells (j, 3). Waarde)
Reeks rSourceRange = shSource.Cells (j, 4)
shTarget.Cells (iBaseRow + I - 1, iBaseCol + iTargetColumn). Waarde = rSourceRange.Value
Volgende j
„Tenslotte dicht het bronwerkboekdossier aangezien wij met het“ gebeëindigd zijn
Werkboeken (sActiveFilename). Dichte SaveChanges: =False
frmProgress.ProgressBar.Value = I
frmProgress.Repaint
Volgende I
shTarget.Columns („C: BK“) .EntireColumn.AutoFit
frmProgress.Hide
Application.Calculation = xlCalculationAutomatic
Application.Calculate
Application.ScreenUpdating = Waar
Application.WindowState = xlMaximized
Application.Visible = Waar
Sub van het eind
|