Экспорт указанной области в виде PDF с VBA на Mac 2016 - PullRequest
0 голосов
/ 19 декабря 2018

В настоящее время пытается написать скрипт, который фильтрует данные и создает новые вкладки с именем, по которому фильтруются данные.Я думаю, что у меня есть эта часть, но моя проблема в том, что я также хочу сохранить каждую вкладку в виде отдельных PDF-файлов, названных так же, как каждая вкладка.

Я получаю сообщение об ошибке «ошибка при печати» и код 400, когдазапуск этого макроса, и, кажется, он возникает на последнем этапе, когда я пытаюсь экспортировать в формате PDF.

Помимо этого у меня есть две другие проблемы:

  1. У меня проблемы с выделением места для сохранения файлов (я на Mac)
  2. Мои рабочие таблицы слишком широки, чтобы вместить все столбцы в альбомном PDF - есть ли шаг, который я могу включить, чтобы принудительно перенести мои данные на один лист вместо того, чтобы они продолжались на другой странице?

Извиняюсь, если мое объяснение недостаточно ясно, я новичок в VBA и т. Д.

Вот мой код:

Sub SplitandFilterSheetandSavePDF()

Dim Splitcode As Range

Sheets("Master").Select
Set Splitcode = Range("Splitcode")

For Each cell In Splitcode
Sheets("Master").Copy After:=Worksheets(Sheets.Count)
ActiveSheet.Name = cell.Value

With ActiveWorkbook.Sheets(cell.Value).Range("MasterData")
.AutoFilter Field:=2, Criteria1:="<>" & cell.Value, 
Operator:=xlFilterValues
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With

ActiveSheet.AutoFilter.ShowAllData

lr = ActiveSheet.Cells(Rows.Count, 9).End(xlUp).Row

ActiveSheet.Range("i" & lr + 1).FormulaR1C1 = "=SUBTOTAL(9,R2C:R[-1]C)"

ActiveSheet.Range("B" & lr & ":i" & lr).Borders(xlEdgeBottom).LineStyle = xlDouble

ActiveWorkbook.SaveAs FileName:=cell.Value

Set printa = ActiveSheet.Range("B1:I" & lr + 2)

ActiveSheet.PageSetup.PrintArea = printa.Address(0, 0)

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    FileName:=cell.Value, _
    OpenAfterPublish:=False

Next cell
End Sub
...