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:
6:
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:
|
Wahl ausdrücklich
Allgemeines sFolder als Schnur
Allgemeines sFilename () als Schnur
Allgemeines NFiles als ganze Zahl
VorGetFileList ()
Schwaches varFileList als Variante
I als ganze Zahl verdunkeln
„Das Verzeichnis vom Benutzer erhalten“
Mit Application.FileDialog (msoFileDialogFolderPicker)
. Erscheinen
Wenn .SelectedItems.Count = 0 herausnehmen dann Unterseeboot „den annullierten Benutzer“
sFolder = .SelectedItems (1)
Ende mit
„Eine Liste aller Akten in diesem Verzeichnis erhalten.“
„Merken, dass dieses nicht… rekursiv ist, obgleich es sein könnte…“
varFileList = GetFileNames (sFolder, „*.txt“)
Wenn nicht IsArray (varFileList) dann
MsgBox „keine Akten gefunden. “, vbInformation
Unterseeboot herausnehmen
Beenden wenn
„Die Dateinamereihe gründen, die basiert auf dem vorgewählten Verzeichnis“
NFiles = UBound (varFileList) + 1
ReDim sFilename (1 zu NFiles)
„Die Dateinamen in eine Schnurreihe für Gebrauch anderwohin kopieren“
Für i = 0 zu UBound (varFileList)
sFilename (i + 1) = CStr (varFileList (i))
Zunächst I
OutputFilenames2XL
ImportFileContent
Enden-Unterseeboot
Private Funktion GetFileNames (ByVal sPath als Schnur, wahlweise freigestelltes sFilter als Schnur) als Variante
„ Bringt eine eindimensionale Reihe mit Dateinamen“ zurück
„ Bringt anders falsches“ zurück
Schwaches f als Schnur
I als ganze Zahl verdunkeln
FileList () als Schnur verdunkeln
Wenn sFilter = "" dann sFilter = „*.*“
Fall Right$ (sPath, 1) vorwählen
„\“ Umkleiden, „/“
sPath = Left$ (sPath, Len (sPath) - 1)
Ende auserwählt
ReDim Konserve FileList (0)
f = Dir$ (sPath u. „\“ u. sFilter)
Tun während Len (f) > 0
ReDim Konserve FileList (i) als Schnur
FileList (i) = f
I = i + 1
f = Dir$ ()
Schleife
Wenn FileList (0) <> sich dann leeren
GetFileNames = FileList
Sonst
GetFileNames = falsch
Beenden wenn
Funktion beenden
Privates Unterseeboot OutputFilenames2XL ()
Schwaches iBaseRow als ganze Zahl, iBaseCol als ganze Zahl
Schwaches shTarget als Arbeitsblatt
I als ganze Zahl verdunkeln
shTarget = Application.ActiveSheet einstellen
iBaseRow = Strecke („BaseCell“). Reihe
iBaseCol = Strecke („BaseCell“). Spalte
„Die Überschriftfelder bevölkern“
shTarget.Range („ImportDate“). Wert = jetzt
shTarget.Range („FolderPath“). Wert = sFolder
shTarget.Range („NFiles“) = NFiles
„Dateinamespalte der Tabelle bevölkern“
Für i = 1 zu NFiles
shTarget.Cells (iBaseRow + i - 1, iBaseCol). Wert = sFilename (i)
Zunächst I
„Formel setzen, um Verhandlungidentifikation in erste Spalte zu analysieren“
shTarget.Range (Zellen (iBaseRow, iBaseCol - 1), Zellen (iBaseRow + NFiles - 1, iBaseCol - 1)) .FormulaR1C1 = „=MID (R [0] C [1], LEN (R [0] C [1]) - 14.8)“
Enden-Unterseeboot
Privates VorImportFileContent ()
I als ganze Zahl, J verdunkeln als ganze Zahl
shTarget als Arbeitsblatt verdunkeln
iBaseRow als ganze Zahl, iBaseCol verdunkeln als ganze Zahl
shSource als Arbeitsblatt verdunkeln
sActiveFilename als Schnur verdunkeln
sFullPath als Schnur verdunkeln
iRowCount als ganze Zahl verdunkeln
iTargetColumn als ganze Zahl verdunkeln
rSourceRange als Strecke verdunkeln
„Niedrige Daten des Speichers für das Zielarbeitsblatt, das wir errichten“
shTarget = Application.ActiveSheet einstellen
iBaseRow = Strecke („BaseCell“). Reihe
iBaseCol = Strecke („BaseCell“). Spalte
„Jeden Dateinamen jetzt verarbeiten, der gerade importiert wird zum Arbeitsblatt“
Application.ScreenUpdating = falsch
Application.WindowState = xlMinimized
Application.Calculation = xlCalculationManual
Application.Visible = falsch
„Einstellungsfortschrittsstab“
Last frmProgress
frmProgress.ProgressBar.Max = NFiles
frmProgress.ProgressBar.Value = 0
frmProgress.Show
Für i = 1 zu NFiles
sActiveFilename = sFilename (i)
sFullPath = sFolder u. „\“ u. sActiveFilename
„Import abgegrenzte Textdatei“
Workbooks.OpenText Dateiname: =sFullPath, _
Ursprung: =437, StartRow: =1, DataType: =xlDelimited, TextQualifier: = _
xlDoubleQuote, ConsecutiveDelimiter: =False, Vorsprung: =True, Semikolon: =False, _
Komma: =False, Raum: =False, anderes: =False, FieldInfo: =Array (1, 1), _
TrailingMinusNumbers: =True
„Den Blattnamen speichern und Format/addieren die erforderten Formeln“
shSource = Application.ActiveSheet einstellen
iRowCount = Application.WorksheetFunction.CountA (Spalten („A: “))
shSource.Range (Zellen (1, 2), Zellen (iRowCount, 2)) .FormulaR1C1 = „=FIND ("": "", R [0] C [- 1])“
shSource.Range (Zellen (1, 3), Zellen (iRowCount, 3)) .FormulaR1C1 = „=IF (GELASSEN (R [0] C [- 2], "" 7)= Anmerkung "", 61, WERT (MITTLER (R [0] C [- 2], 2, R [0] C [- 1] - 2)))“
shSource.Range (Zellen (1, 4), Zellen (iRowCount, 4)) .FormulaR1C1 = „=RIGHT (R [0] C [- 3], LEN (R [0] C [- 3]) - R [0] C [- 2] - 1)“
„Sicherstellen, dass die Zellen mit den gegenwärtigen Daten aktualisiert werden (nur benötigt, wenn Berechnung wird eingestellt auf Handbuch)“
shSource.Calculate
„Kopieren jetzt die resultierenden analysierten Daten in die korrekten Zellen auf dem Zielarbeitsblatt“
Für J = 1 zum iRowCount
iTargetColumn = CInt (shSource.Cells (J, 3).Value)
rSourceRange = shSource.Cells (J, 4) einstellen
shTarget.Cells (iBaseRow + i - 1, iBaseCol + iTargetColumn). Wert = rSourceRange.Value
Folgendes J
„Schließlich Abschluss die Quellarbeitsbuchakte, da wir werden beendet sie“
Arbeitsbücher (sActiveFilename). Nahes SaveChanges: =False
frmProgress.ProgressBar.Value = i
frmProgress.Repaint
Zunächst I
shTarget.Columns („C: BK“) .EntireColumn.AutoFit
frmProgress.Hide
Application.Calculation = xlCalculationAutomatic
Application.Calculate
Application.ScreenUpdating = richten aus
Application.WindowState = xlMaximized
Application.Visible = richten aus
Enden-Unterseeboot
|