Als beginnerling ben ik bezig met het maken van een sorteer functie met VBA in Word.
Het is de bedoeling dat er een aantal tekstbestanden worden gelezen. Deze bevatten altijd 2 regels. Nu wil ik graag dat o.b.v. de eerste regel er nieuwe textbestanden worden weggeschreven waarbij de volgorde van wegschrijven afhangt van de eerste regel van elk bestand. Dit moet namelijk alfabetisch gebeuren.
Stel ik heb:
testbestand0001.txt, met op regel1: "Bedankt" en op regel2: "100"
testbestand0002.txt, met op regel1: "Alvast" en op regel2: "50"
Nu wil ik de bestanden weer wegschrijven waarbij alfabetisch gesorteerd wordt op de eerste regel van elk bestand, dus nu zou het resultaat moeten zijn:
testbestand0001.txt, met op regel1: "Alvast" en op regel2: "50"
testbestand0002.txt, met op regel1: "Bedankt" en op regel2: "100"
Ik ben flink aan het vogelen geweest, ik loop vast op het sorteren en wegschrijven.
Het is de bedoeling dat er een aantal tekstbestanden worden gelezen. Deze bevatten altijd 2 regels. Nu wil ik graag dat o.b.v. de eerste regel er nieuwe textbestanden worden weggeschreven waarbij de volgorde van wegschrijven afhangt van de eerste regel van elk bestand. Dit moet namelijk alfabetisch gebeuren.
Stel ik heb:
testbestand0001.txt, met op regel1: "Bedankt" en op regel2: "100"
testbestand0002.txt, met op regel1: "Alvast" en op regel2: "50"
Nu wil ik de bestanden weer wegschrijven waarbij alfabetisch gesorteerd wordt op de eerste regel van elk bestand, dus nu zou het resultaat moeten zijn:
testbestand0001.txt, met op regel1: "Alvast" en op regel2: "50"
testbestand0002.txt, met op regel1: "Bedankt" en op regel2: "100"
Ik ben flink aan het vogelen geweest, ik loop vast op het sorteren en wegschrijven.
code:
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
| Sub testje()
Dim Regels(100000) As String
Dim Regels2(100000) As String
Dim tmp As String
Dim i As Integer
Dim j As Integer
Dim b As Integer
bestanden = "C:\Mijn Documenten\"
With Application.FileSearch
.NewSearch
.LookIn = bestanden
.SearchSubFolders = False
.FileName = "testbestand"
.MatchAllWordForms = True
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then aantal = .FoundFiles.Count
i = 1
For b = 1 To aantal
Open .FoundFiles(b) For Input As #1
Line Input #1, tmp
Line Input #1, tmp2
Regels(i) = tmp
Regels2(i) = tmp2
i = i + 1
Close #1
Next b
n = Format(1, "00000")
For z = 1 To aantal
For j = i To 0 Step -1
Open bestanden & "testbestand" & n & ".txt" For Output As #1
Print #1, Regels(i)
Print #1, Regels2(i)
Close #1
n = n + 1
Next j
Next z
End With
End Sub |