У меня есть лист «Форма заполнения», где пользователь заполняет информацию, а затем у меня есть лист «Версия для печати», который фактически печатается.Я делаю «инструмент CV», поэтому пользователь заполняет свою личную информацию, а затем мой текущий VBA сохраняет конечный файл из «Версия для печати» в xls.и .pdf в одну и ту же папку с определенным именем в обоих файлах, где находится мой «инструмент CV».Некоторые люди имеют опыт работы 10 лет на 10 различных рабочих местах, а другие были только в 2 разных компаниях ранее.Поэтому перед сохранением в .pdf и .xls мой VBA скрывает пустые строки, чтобы конечный результат выглядел хорошо.
Проблема в том, что эстетически это не очень хорошо выглядит, потому что некоторые заголовки рабочих позиций находятся в концестраницы и описание работы продолжается на следующей странице.Можно ли каким-то образом заставить VBA искать каждую страницу в «PrintArea», и, если определенный блок не умещается на этой странице, VBA вставит «Разрыв страницы» перед тем, как переместить его на следующую страницу?
Мой текущий макрос ниже (Sub doitallplease()
является основной командой):
Sub Color()
Dim myRange As Range
Dim cell As Range
Set myRange = ThisWorkbook.Sheets("Print version").Range("Print_Area")
For Each cell In myRange
myRange.Interior.ColorIndex = 0
If cell.HasFormula = True And cell.value = "" And cell.EntireRow.Hidden = False Then Rows(cell.Row).EntireRow.Hidden = True
Next
End Sub
Sub MagicButton()
Dim iFileName$, iRow&, iCol&, iCell As Range, iArr
iFileName = ThisWorkbook.Path & "\CV_" & Sheets("Filling form").Range("F7") & "_" & Sheets("Filling form").Range("F9") & ".xls"
iArr = Array(1, 3, 4): iCol = UBound(iArr) + 1
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlManual
ThisWorkbook.Sheets("Print version").Copy
With ActiveWorkbook.ActiveSheet
.Buttons.Delete '.Shapes("Button 1").Delete
.UsedRange.value = .UsedRange.value
.SaveAs iFileName, xlExcel8: .Parent.Close
End With
Application.Calculation = xlAutomatic
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Sub exportpdfthisfile()
ActiveWorkbook.Sheets("Print version").Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\CV_" & Sheets("Filling form").Range("F7") & "_" & Sheets("Filling form").Range("F9") & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub
Sub doitallplease()
Application.ScreenUpdating = False
ActiveWorkbook.Sheets("Print version").Visible = True
Call Color
Call MagicButton
Call exportpdfthisfile
ActiveWorkbook.Sheets("Filling form").Activate
ActiveWorkbook.Sheets("Print version").Visible = False
Application.ScreenUpdating = True
End Sub