Daar denk je toch te gemakkelijk over; de eerste die dat in twee minuten kan moet ik nog tegenkomen. Maar uiteraard gaat het wél in Excel !
Ervan uitgaand dat je gegevens in Excel in het eerste blad in de kolommen A:FD staan (160 kolommen, elk 40000 cellen groot), kun je onderstaande macro gebruiken, die je vanuit Excel kunt uitvoeren. De macro brengt je gegevens over naar een Wordbestand. Elke kolom van Excel neemt in Word (met gebruikmaking van lettertype Calibri en lettergrootte 11) bijna 9 pagina's in beslag (na elke negende pagina wordt een pagina-einde ingevoegd).
De gegevens van 10 Excelkolommen (400.000 cellen) naar Word overbrengen duurt op mijn (niet al te snelle) computer met deze macro bijna vijf seconden, dus ook voor 160 kolommen zal de tijd nog aanvaardbaar zijn. (Ter vergelijking: met een macro waarmee elk karakter
afzonderlijk naar Word wordt overgebracht, duurt het overbrengen van 10 kolommen bijna een half uur).
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
| Option Base 1
Sub macro2()
Dim myarray1(1), myarray2(1), mydoc As Object, a As Integer, x As Long, y As Long
Set mydoc = CreateObject(Class:="Word.Application")
With mydoc
.Visible = True
.documents.Add
.Activate
End With
For a = 1 To 160
With Sheets(1)
myarray1(1) = "": myarray2(1) = ""
For x = 1 To 20000
myarray1(1) = myarray1(1) & .Cells(x, a)
Next x
For y = 20001 To 40000
myarray2(1) = myarray2(1) & .Cells(y, a)
Next y
End With
Application.ScreenUpdating = False
With mydoc.Selection
.typetext "Kolom " & a & Chr(13)
.typetext myarray1(1)
.Collapse Direction:=0
.typetext myarray2(1)
.InsertBreak Type:=7
End With
Application.ScreenUpdating = True
Next a
Set mydoc = Nothing
End Sub |
Wat ik mij afvraag: hoe kom je aan die lange kolommen in Excel met in elke cel slechts 1 karakter?
En wat moet je nu met 1440 Wordpagina's waarvan elke 9 pagina's bestaan uit 40.000 aaneengesloten karakters?
[
Voor 5% gewijzigd door
dix-neuf op 13-04-2019 08:47
]