В настоящее время пытается написать скрипт, который фильтрует данные и создает новые вкладки с именем, по которому фильтруются данные.Я думаю, что у меня есть эта часть, но моя проблема в том, что я также хочу сохранить каждую вкладку в виде отдельных PDF-файлов, названных так же, как каждая вкладка.
Я получаю сообщение об ошибке «ошибка при печати» и код 400, когдазапуск этого макроса, и, кажется, он возникает на последнем этапе, когда я пытаюсь экспортировать в формате PDF.
Помимо этого у меня есть две другие проблемы:
- У меня проблемы с выделением места для сохранения файлов (я на Mac)
- Мои рабочие таблицы слишком широки, чтобы вместить все столбцы в альбомном 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