【问题标题】:Convert only few columns from Excel to PDF仅将几列从 Excel 转换为 PDF
【发布时间】:2020-10-15 13:46:42
【问题描述】:

我在一个 excel 文件中有 3 张工作表,我正在尝试使用 VB 脚本将所有这 3 张工作表转换为一个 pdf 文件。

下面的代码运行良好。

Sub CreatePDff()

Sheets(Array("Sheet1", " Sheet2", " Sheet3")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Environ("UserProfile") & "\Documents\sample.pdf", _
    openafterpublish:=True, ignoreprintareas:=False
   
Application.DisplayAlerts = False

End Sub  

现在,我只需要从 sheet3 转换的列(A 到 D 和 G、J)。不是 Sheet3 中的整个列。

我需要 Sheet1、Sheet2 中的全部数据,并且只需要 Sheet3 中的选定列到单个 pdf 文件中。

对此有任何想法

【问题讨论】:

  • 只需隐藏列 E、F 和 H,导出 pdf 并最终取消隐藏列 :-)

标签: excel vba


【解决方案1】:

创建一个新工作表并将 A-D 和 G-J 列粘贴到那里。让我们假设它是 Sheet4。并在数组中,传递 Sheet4 而不是 Sheet3 并删除 sheet4。

修改了您的代码

Sub CreatePDff()

Dim wb As Workbook
Dim sh As Worksheet

Set wb = Workbooks(ActiveWorkbook.Name)
Set sh = wb.Sheets.Add(After:=Sheets(Sheets.Count)) ' Adds a new sheet

sheets("Sheet3").Range("A:D,G:J").copy 'Copy Selected data from Sheet3
sheets("Sheet4").Range("A1").pastespecial ' Paste it in new sheet

Sheets(Array("Sheet1", " Sheet2", " Sheet4")).Select 'Change sheet3 to 4
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Environ("UserProfile") & "\Documents\sample.pdf", _
    openafterpublish:=True, ignoreprintareas:=False
  
Sheets("Sheet4").SelectedSheets.Delete 'Delete Sheet4

Application.DisplayAlerts = False

End Sub 

【讨论】:

  • Add 方法返回错误“运行时错误 1004,对象表的方法添加失败”。请问有什么想法吗?
  • 查看编辑后的代码。我假设你只有 3 张纸。这是创建一个新工作表,即 sheet4。如果您有 3 张以上的工作表,则需要为新工作表命名,即 sh.name="Anyname"。最后由 Sheets("Anyname").SelectedSheets.Delete 删除
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 2013-10-11
  • 2015-08-02
  • 1970-01-01
  • 2023-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多