2016-03-22 37 views
0

我有4个工作表,分别为“Sheet1”,“Sheet2”,“Sheet3”和“Sheet4”。将多个工作表导出为PDF而无需选择

对于我的PDF,我想导出表Sheet 3和Sheet4的内容,所以它会被分成数组作为:

Sheets(Array("Sheet3", "Sheet4")); 

现在,通常要导出为PDF,我会选择这个,然后有

ActiveSheet.ExportAsFixedFormat _ 
Type:=xlTypePDF, _ 
Filename:= _ 
"C:\filename.pdf", _ 
Quality:= xlQualityStandard, _ 
IncludeDocProperties:=True, _ 
IgnorePrintAreas:=False, _ 
OpenAfterPublish:=False 

但是,我想让这个宏在后台完全运行。如果我在查看Sheet1并运行此宏,它将转向Sheet3,因为它正在被选中,这对工作流程造成了干扰。

我知道如何通过声明变量基本操作做到这一点,如FillCell:

Dim wb As Workbook 
Dim ws As Worksheet 
Set wb = ThisWorkbook 
Set ws = wb.Sheets("Sheet2") 
' modify ws 

,因为这在幕后工作。

总之,我想将多个工作表(不是全部)导出为PDF,而无需使用选择,激活或类似工具,这将改变我目前正在查看的工作簿/工作表的视图。

+0

你试过只调用table3.ExportAsFixedFormat? –

+1

复制[在不使用ActiveSheet或Select的情况下同时在多个工作表上使用方法](http://stackoverflow.com/q/22796286/4088852)。 – Comintern

+0

@Comintern,运行良好。干杯 – mojo1mojo2

回答

-1

这应该可以做到。

Sheets("Sheet 1").ExportAsFixedFormat _ 
Type:=xlTypePDF, _ 
Filename:= _ 
"C:\filename.pdf", _ 
Quality:= xlQualityStandard, _ 
IncludeDocProperties:=True, _ 
IgnorePrintAreas:=False, _ 
OpenAfterPublish:=False