Я пытаюсь использовать VBA для автоматизации добавления границ на лист, которые представляют границу на странице A4 при печати в PDF. Легко сделать вручную, т.е. выделить диапазон и применить внешнюю границу. Но когда страниц много, это становится громоздко. Страницы располагаются вертикально.
- Диапазон страницы 1 B2: N69
- Диапазон страницы 2 B70: N137
- Диапазон страницы 3 B138: N205
Вот моя попытка
- Пробная 1: Сделайте это вручную, сохраните как PDF, все работает нормально
- Пробная 2: Запишите макрос пробной 1, сохраните как PDF, все работает ОК
- Проба 3: запустить записанный макрос, сохранить как PDF, не ОК, нижняя граница первых двух страниц исчезла.
См. код ниже:
Range("B2:N69").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Range("B70:N137").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Range("B138:N205").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Странно, что ручная и записанная версия руководства дают разные результаты.
Когда я щелкаю правой кнопкой мыши по ячейкам и выбираю «формат ячеек», он говорит, что там есть граница . Проблема существует только для границы в нижней части области печати страницы. Границы внутри страницы, использующие тот же код, не изменяются.
Есть предложения?
Заранее благодарим. М