2016-05-17 66 views
0

我试图将一系列工作表保存到为每个Excel工作表命名的单个文件中。如何保存PDF文件与正确的活动工作表?

For Each ws In ActiveWorkbook.Sheets 
    fileName = RDB_Create_PDF(Range(ws.PageSetup.PrintArea), "N:\Excel\VBA\" & CleanStr(ws.Name) & ".pdf", True, True) 
Next 

。问题是每个ws的printarea和文件名更改,但它只保存当前活动工作表中的信息 - 即,我得到的工作表信息与不同的printarea范围和不同的文件名保存的相同。随着ws的变化,我将如何获得活动工作表以与printarea和文件名保持一致?

回答

0
RDB_Create_PDF(Range(ws.PageSetup.PrintArea), _ 
       "N:\Excel\VBA\" & CleanStr(ws.Name) & ".pdf", True, True) 

这里Range将默认为ActiveSheet而不是ws

RDB_Create_PDF(ws.Range(ws.PageSetup.PrintArea), _ 
       "N:\Excel\VBA\" & CleanStr(ws.Name) & ".pdf", True, True) 

可能是你想要什么,但很难说肯定没有发布用于RDB_Create_PDF

+0

为RDB_Create_PDF的代码是代码发帖时间太长。但是,您的建议似乎可行,尽管在运行子文件后,原始表单上的所有信息都会被删除。 – ectrimm

+0

这可能发生在你的被调用Sub –

+0

某处在这里是一个代码示例(在第二个灰色框中):http://stackoverflow.com/questions/36647945/solved-compile-on-demand-disabled – ectrimm

相关问题