首页 > 解决方案 > 仅将几列从 Excel 转换为 PDF

问题描述

我在一个 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 文件中。

对此有任何想法

标签: excelvba

解决方案


创建一个新工作表并将 AD 和 GJ 列粘贴到那里。让我们假设它是 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 

推荐阅读