Jeg har en brev-skabelon i Word, som volder mig lidt kvaler. Jeg har følgende kode, som gør, at når man er på side to og taster ctrl+shift+f, så ændrer sideopsætningen sig, så højre margin bliver 2 i stedet for 5, og det virker fint.
Option Explicit
Private Sub Document_Open() ReformatPages End Sub
Sub ReformatPages() Dim sec As Section Dim hist As Long Dim l1 As Single Dim r1 As Single Dim t1 As Single Dim b1 As Single Dim l2 As Single Dim r2 As Single Dim t2 As Single Dim b2 As Single Dim rng As Range
'Remove all previous section breaks With ActiveDocument.Range.Find .Execute Findtext:="^b", ReplaceWith:="", Replace:=True End With 'Format first section ActiveDocument.Sections(1).PageSetup.LeftMargin = CentimetersToPoints(l1) ActiveDocument.Sections(1).PageSetup.RightMargin = CentimetersToPoints(r1) ActiveDocument.Sections(1).PageSetup.TopMargin = CentimetersToPoints(t1) ActiveDocument.Sections(1).PageSetup.BottomMargin = CentimetersToPoints(b1)
'Find end of first page Set rng = ActiveDocument.Range rng.Collapse wdCollapseStart rng.Select
Do While Selection.Information(wdActiveEndPageNumber) < 2 hist = Selection.End Selection.MoveDown If Selection.End = hist Then Exit Do End If Loop
'break into two sections and format following pages If Selection.Information(wdActiveEndPageNumber) = 2 Then Selection.InsertBreak wdSectionBreakNextPage ActiveDocument.Sections(2).PageSetup.LeftMargin = CentimetersToPoints(l2) ActiveDocument.Sections(2).PageSetup.RightMargin = CentimetersToPoints(r2) ActiveDocument.Sections(2).PageSetup.TopMargin = CentimetersToPoints(t2) ActiveDocument.Sections(2).PageSetup.BottomMargin = CentimetersToPoints(b2) End If End Sub
Problemet er at jeg også skal have sidetal på side to og frem. Når jeg indsætter følgende kode, så får jeg ingen sidetal på side 1, sidetal på side 2, ingen sidetal på side 3, men sidetal derefter.
Hvorfor får jeg ikke sidetal på side 3? Hvad skal jeg gøre anderledes?
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then ActiveWindow.Panes(2).Close End If If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ ActivePane.View.Type = wdOutlineView Then ActiveWindow.ActivePane.View.Type = wdPrintView End If ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader If Selection.HeaderFooter.IsHeader = True Then ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter Else ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader End If NormalTemplate.AutoTextEntries("- SIDE -").Insert Where:=Selection.Range, _ RichText:=True ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub
Har du, som anbefalet i spm. http://www.eksperten.dk/spm/743176 (som du gerne må lukke) kigget efter hjælp til ordet "DifferentFirstPageHeaderFooter" ?
Jeg har prøvet at indsætte denne kode til sidst i den øverste kode jeg viste:
With ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary) .PageNumbers.Add _ PageNumberAlignment:=wdAlignPageNumberCenter, _ FirstPage:=False End With
Men når jeg så bruger ctrl+shift+f på side to, så forsvinder sidetallet på side to, men bliver der på de resterende.
Din Sub sidetal skal arbejde på Sections, da du skal indstille Header og Footer pr. Section. Vær opmærksom på at DifferentFirstPageHeaderFooter skal være False.
Ctrl+Skift+F giver FED i min Word (2003) og burde ikke vælte noget.
(Hvis jeg bruger din kode på et dokument på 4 sider, med sektionsskifte mellem side 1 og side 2, så bliver min side 2 placeret på side 1, den bliver efterfulgt af først 1 sideskift og derefter et side-sektionsskift, hvilket giver en blank side... (Sidehoved for side 1 og 2 bliver identisk))
Njaaa, lidt. Jeg søgte lidt mere på DifferentFirstPageHeaderFooter og fandt noget jeg kunne bruge. Nu har jeg så bare det problem, at når jeg printer flere sider så kommer både side 1 og 2 på brevpapir og resten på hvidt papir. Det er kun side 1, der skal på brevpapir. Nogle idéer til hvordan jeg kan løse det?
P.S. Ham der oprindeligt lavede det har lavet en makro med Ctrl+Skift+F, der ændrer margener mv.
Synes godt om
Ny brugerNybegynder
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.