在Mac 2016上使用VBA将指定区域导出为PDF

时间:2018-12-19 15:48:35

标签: excel vba excel-2016

当前正在尝试编写用于过滤数据并创建新标签的脚本,该标签名为过滤数据的值。我想我已经把这部分讲完了,但是我的问题是我还想将每个标签另存为与每个标签同名的PDF。

运行此宏时出现“打印时出错”错误和400的代码,当我尝试导出为PDF时,它似乎在最后一步出现。

此外,我还有另外两个问题:

  1. 我无法分配位置来保存文件(我正在 苹果机)
    1. 我的工作表太宽,无法容纳景观中的所有列 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

0 个答案:

没有答案