Google laat me vandaag in de steek.
Ik heb een stukje vba geprogrammeerd, waarmee ik vanuit Access een Word document genereer.
Alles gaat goed, totdat ik .PageSetup gebruik om de marges in te stellen. Op dat punt krijg ik de foutmelding zoals in de titel van deze post.
Hieronder de sub waarmee ik Word aanroep (die goed werkt):
Daarna roep ik een sub aan welke de opmaak van het document moet aanpassen:
En daarna wordt de tekst ingevoegd en alles netjes 'nothing' geset. Je kan dan nog het document bewerken in word en je moet het handmatig opslaan en afsluiten.
Dit lijkt goed te werken. Namelijk, de eerste keer dat ik het uitvoer werkt alles prima.
Maar als ik dan word afsluit en hetzelfde daarna nogmaals uitvoer, dan gaat het mis en krijg ik dus die foutmelding op het punt waar de marges ingesteld worden.
Als ik dan word afsluit en het weer probeer gaat het weer wél goed...
Dus het gaat om en om wel en niet goed...
Iemand enig idee of er een workaround voor is? Want volgens mij is mijn code wel in orde...
Ik heb een stukje vba geprogrammeerd, waarmee ik vanuit Access een Word document genereer.
Alles gaat goed, totdat ik .PageSetup gebruik om de marges in te stellen. Op dat punt krijg ik de foutmelding zoals in de titel van deze post.
Hieronder de sub waarmee ik Word aanroep (die goed werkt):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| Public Sub StartWord()
On Error GoTo Fout
Set Woord = New Word.Application
Set MyDoc = Woord.Documents.Add
With Woord
.Visible = True
.WindowState = wdWindowStateMaximize
End With
GoTo EindeSub
Fout:
FoutMelding
EindeSub:
End Sub |
Daarna roep ik een sub aan welke de opmaak van het document moet aanpassen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| Public Sub SetupWord()
On Error GoTo Fout
With Woord.Selection
.Font.Name = "Arial"
.Font.Size = 10
.Font.Bold = False
.Font.Italic = False
.Font.Underline = wdUnderlineNone
.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text = ""
.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text = ""
.Sections(1).PageSetup.TopMargin = CentimetersToPoints(2)
.Sections(1).PageSetup.BottomMargin = CentimetersToPoints(2)
.Sections(1).PageSetup.LeftMargin = CentimetersToPoints(2)
.Sections(1).PageSetup.RightMargin = CentimetersToPoints(2)
End With
GoTo EindeSub
Fout:
FoutMelding
EindeSub:
End Sub |
En daarna wordt de tekst ingevoegd en alles netjes 'nothing' geset. Je kan dan nog het document bewerken in word en je moet het handmatig opslaan en afsluiten.
Dit lijkt goed te werken. Namelijk, de eerste keer dat ik het uitvoer werkt alles prima.
Maar als ik dan word afsluit en hetzelfde daarna nogmaals uitvoer, dan gaat het mis en krijg ik dus die foutmelding op het punt waar de marges ingesteld worden.
Als ik dan word afsluit en het weer probeer gaat het weer wél goed...
Dus het gaat om en om wel en niet goed...
Iemand enig idee of er een workaround voor is? Want volgens mij is mijn code wel in orde...