あなたの問題は、のchdirコマンドでは、説明のためにここを参照してください:このhttps://www.techonthenet.com/excel/formulas/chdir.php
重要な部分は、「CHDIRステートメントは、あなたが現在のディレクトリを変更することができますされますドライブを変更する必要がある場合は、まずCHDRIVEステートメントを使用してみてください。
ネットワークドライブに保存しようとすると、ドライブ文字がC:\からネットワークドライブがマップされているものに変更されています。私の場合はU:\でした。
あなたのコードに簡単な修正は、ファイル名だけにあるので、あなたのコードは次のようになりますしChDir関数からのパスを移動することです:
Sub PDF_CStmtP()
Application.ScreenUpdating = False
ThisWorkbook.Sheets(Array("C Stmt - P")).Select
pdfname = fileSaveName
'ChDir ActiveWorkbook.Path & "\"
fileSaveName = ActiveWorkbook.Path & "\" & "Closing Statement (Purchase)"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= fileSaveName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
Application.ScreenUpdating = True
ActiveWorkbook.Sheets("Main Menu").Activate
MsgBox "File Saved " & " " & fileSaveName
End Sub
あなたがそれをきれいに作ることができるいくつかの他の編集があります。これは手元の問題を解決します。
**メッセージボックスについてのコメントをもとに、あなたはこれまでコード変更することができます:あなたがいることを定義するため、 `(あなたが使用することはありません)pdfname`は、空白/空になり、FYI
Sub PDF_CStmtP()
Application.ScreenUpdating = False
ThisWorkbook.Sheets(Array("C Stmt - P")).Select
pdfname = "Closing Statement (Purchase)"
'ChDir ActiveWorkbook.Path & "\"
fileSaveName = ActiveWorkbook.Path & "\" & pdfname
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= fileSaveName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
Application.ScreenUpdating = True
ActiveWorkbook.Sheets("Main Menu").Activate
MsgBox "File Saved " & " " & pdfname
End Sub
を'fileSaveName'に値が与えられる前に。また、正しいエラーはありませんか?テストとして 'fileSaveName'を' 'K:\ Closing Statement(Purchase)' '(' K:\ 'がネットワークフォルダであると仮定して)に変更してみてください。あなたは完全なパスをそこに通らなければならないかもしれません。 – BruceWayne
私は、開いているマクロを有効にしたテンプレートを持っているので、私たちが作業する各ファイルの別の場所にマクロが有効なブックとして保存されるのを避けようとしています。パスは毎回変わるでしょう。 (あなたにバットマンを迎えて喜んで) – Ryan
ええ、毎回変わることは分かっています。問題がファイル名かどうかを確認するだけです。ファイル名に直接パスを入れても、それが期待通りの場所に保存されていない場合、それは別のものです。 *が*保存されている場合は、フルパスを含めるには1行または2行を追加するだけです。 – BruceWayne