Мне нужно удалить и заменить верхний и нижний колонтитулы около 50 документов, поэтому я пишу код VBA для изменения верхнего и нижнего колонтитула. В заголовке я хочу, чтобы lo go справа и текст в две строки были центрированы в заголовке. Текст в верхней строке должен быть отформатирован иначе, чем вторая строка.
Вот код, который у меня есть сейчас - я написал код только для первой строки; Я хотел, чтобы это работало, прежде чем добавлять код для форматирования второй строки. Когда он выполняется - (в режиме прерывания) Указанная строка фактически не выбрана - выделение остается только содержимым ячейки, и форматирование применяется ко всему тексту заголовка.
Private Sub AddHeaderToRange(rng As Word.Range)
Dim imgPath As String, myImg As InlineShape, secondLine As String, firstLine As String
firstLine = "Imagine Southwest Region"
secondLine = "AZ Social Studies 2020-21"
imgPath = "C:\Users\Laura.Defibaugh\Pictures\imagine_logo.jpg"
With rng
.Tables.Add Range:=rng, NumRows:=1, NumColumns:=2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitWindow
With .Tables(1)
.Borders.InsideLineStyle = wdLineStyleNone
.Borders.OutsideLineStyle = wdLineStyleNone
.Cell(1, 1).SetWidth ColumnWidth:=InchesToPoints(9), RulerStyle:=wdAdjustNone
.Cell(1, 2).SetWidth ColumnWidth:=InchesToPoints(0.8), RulerStyle:=wdAdjustNone
.Cell(1, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 1).Range.Text = firstLine & vbCrLf & secondLine
Set myImg = .Cell(1, 2).Range.InlineShapes.AddPicture("C:\Users\Laura.Defibaugh\Pictures\imagine_logo.jpg")
With myImg
.Width = InchesToPoints(0.8)
.Height = InchesToPoints(0.8)
End With
.Cell(1, 1).Range.Select
With Selection.Find
.Forward = True
.Wrap = wdFindStop
.Text = firstLine
.Execute
End With
With Selection.Font
.Bold = True
.Size = 20
End With
End With
End With
End Sub