2016-05-17 5 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

のどこかで起こっている可能性があります。コードのサンプルは2番目の灰色のボックスにあります:http://stackoverflow.com/questions/36647945/solved-compile-on-demand-disabled – ectrimm

関連する問題