2013-04-18 2 views
3

Я пытаюсь написать макрос vba для слова, где у документа будут номера страниц, но выравнивание нечетного номера страницы будет отличаться от четной страницы. Код, который я в настоящее время пытается меняется выравнивание обоих четных и нечетных страниц, которые не требуетсяНазначить даже нечетные номера страниц в слове

ActiveDocument.Sections(i).PageSetup.OddAndEvenPagesHeaderFooter = False 
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter 
    Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter.LinkToPrevious 
    ActiveDocument.Sections(i).Footers(wdHeaderFooterPrimary).LinkToPrevious = False 
    With ActiveDocument.Sections(i).Footers(1).PageNumbers 
     .NumberStyle = wdPageNumberStyleArabic 
     .HeadingLevelForChapter = 0 
     .IncludeChapterNumber = False 
     .ChapterPageSeparator = wdSeparatorHyphen 
     .RestartNumberingAtSection = False 
     .StartingNumber = starts 
     .Add (0) 
    End With 
End If 
ActiveDocument.Sections(i).PageSetup.OddAndEvenPagesHeaderFooter = True 
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter 
ActiveDocument.Sections(i).Footers(wdHeaderFooterEvenPages).LinkToPrevious = False 
WordBasic.InsertAlignmentTab Alignment:=2, Relative:=0, Leader:=0 
+0

как вы определяете переменную 'no_format' здесь? и другие переменные типа 'start',' continue', 'align' ?? вы пытались отлаживать этот код шаг за шагом? Кроме того, добавьте большую часть вашего кода, которая будет включать открытие для оператора 'end if', который находится в 5-й строке до конца ... –

+1

no_format - это переменная = 1, обозначающая стиль номера страницы, продолжение - это истина и ложь, если она продолжается маркировка страниц с предыдущим разделом и align = 0 для выравнивания по левому краю, а align2 - выравнивание для выравнивания по правому краю, if-endif используется для позиционирования номера страницы в верхнем или нижнем колонтитуле – Sanghita

+0

, это важная информация. не могли бы вы также расширить свой код? –

ответ

2

Кажется, что для четных и нечетных страниц вы не установили left и right позиции номера страниц но вам нужно установить outside и inside позиции из них.

Итак, попробуйте изменить эту крошечную линию:

.Add (0) 

в одну из возможных «нечетного даже» позиции:

.Add wdAlignPageNumberOutside 
.Add wdAlignPageNumberInside 

Кроме того, последняя строка, которая пытается вставить «вкладку» тогда не нужно.

+0

Спасибо! это сработало :) – Sanghita

Смежные вопросы