Avatar billede LTG Novice
23. november 2017 - 14:57 Der er 1 kommentar og
1 løsning

hvordan kan VBA kode i excel styre formatering af word-fil som makro åbner

Jag har lavet en makro i Excel, som åbner en Word-fil oo gør klar til indsættelse af tabel fra Excel. Det går godt noget ad vejen. Jeg har optaget makro i Word, som jeg så kopierer over i Excel VBA. Jeg kan få excel-makroen til at indsætte ny sektion i slutningen af dokumentet, men ikke formatere ny sektion med de anderledes marginer og at den ikke har speciel første side. I word-filen som makroen åbner, er der allerede en tekst med en formatering, der ikke skal fortsætte i den nye sektion, hvor jeg vil indsætte tabel fra den excel-fil hvor makroen findes. Hvordan kan jeg gøre det?

Denne del fungerer:

.Selection.EndKey Unit:=wdStory
Selection.InsertBreak Type:=wdPageBreak
.Selection.InsertBreak Type:=wdSectionBreakNextPage

Denne del  fungerer ikke:

ActiveDocument.Range(Start:=Selection.Start, End:=Selection.Start). _
        InsertBreak Type:=wdSectionBreakNextPage
    Selection.Start = Selection.Start + 1
    With ActiveDocument.Range(Start:=Selection.Start, End:=ActiveDocument. _
        Content.End).PageSetup
        .LineNumbering.Active = False
        .Orientation = wdOrientPortrait
        .TopMargin = CentimetersToPoints(1.9)
        .BottomMargin = CentimetersToPoints(1.9)
        .LeftMargin = CentimetersToPoints(1.8)
        .RightMargin = CentimetersToPoints(1.8)
        .Gutter = CentimetersToPoints(0)
        .HeaderDistance = CentimetersToPoints(1.2)
        .FooterDistance = CentimetersToPoints(0.7)
        .PageWidth = CentimetersToPoints(21)
        .PageHeight = CentimetersToPoints(29.7)
        .FirstPageTray = wdPrinterDefaultBin
        .OtherPagesTray = wdPrinterDefaultBin
        .SectionStart = wdSectionNewPage
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .VerticalAlignment = wdAlignVerticalTop
        .SuppressEndnotes = False
        .MirrorMargins = False
        .TwoPagesOnOne = False
        .BookFoldPrinting = False
        .BookFoldRevPrinting = False
        .BookFoldPrintingSheets = 1
        .GutterPos = wdGutterPosLeft
24. november 2017 - 06:34 #1
Mangler resten af din kode, så det bliver lidt et skud i tågen, men prøv at sætte . (punktum) foran de forskellige objekter (gætter på at der er en with der peger på word objektet tidligere, men det afhænger lidt af hvad der peges på).

.Selection.EndKey Unit:=wdStory
.Selection.InsertBreak Type:=wdPageBreak
.Selection.InsertBreak Type:=wdSectionBreakNextPage

Denne del  fungerer ikke:

.ActiveDocument.Range(Start:=.Selection.Start, End:=.Selection.Start). _
        InsertBreak Type:=wdSectionBreakNextPage
    .Selection.Start = .Selection.Start + 1
    With .ActiveDocument.Range(Start:=.Selection.Start, End:=.ActiveDocument. _
        Content.End).PageSetup
        .LineNumbering.Active = False
        .Orientation = wdOrientPortrait
        .TopMargin = CentimetersToPoints(1.9)
        .BottomMargin = CentimetersToPoints(1.9)
        .LeftMargin = CentimetersToPoints(1.8)
        .RightMargin = CentimetersToPoints(1.8)
        .Gutter = CentimetersToPoints(0)
        .HeaderDistance = CentimetersToPoints(1.2)
        .FooterDistance = CentimetersToPoints(0.7)
Avatar billede LTG Novice
27. november 2017 - 09:41 #2
Det var lige det :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester