2017-03-10 17 views
0

次のコーディングは、あるフォルダから別のフォルダに単語文書をコピーするために使用されます。MS Wordの同じフォルダまたは同じディレクトリへのファイルのコピー

Sub copyfile() 
    Const SourceFile = "D:\Macrotest\B\xxxxxxxxx_queries.docx" 

    Set fso = CreateObject("Scripting.FileSystemObject") 
     'Check to see if the file already exists in the destination folder 
     If fso.FileExists(DestinationFile) Then 
     'Check to see if the file is read-only 
     If Not fso.GetFile(DestinationFile).Attributes And 1 Then 
      'The file exists and is not read-only. Safe to replace the file. 
      fso.CopyFile SourceFile, "D:\Macrotest\A\", True 
     Else 
      'The file exists and is read-only. 
      'Remove the read-only attribute 
      fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes - 1 
      'Replace the file 
      fso.CopyFile SourceFile, "D:\Macrotest\A\", True 
      'Reapply the read-only attribute 
      fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes + 1 
     End If 
    Else 
     'The file does not exist in the destination folder. Safe to copy file to this folder. 
     fso.CopyFile SourceFile, "D:\Macrotest\A\", True 
    End If 
    Set fso = Nothing 
End Sub 

私がアクセスしていますが同じフォルダにフォルダからファイルを移動コードが必要です。メッセージがポップアップした後にD:\Macrotest\A\の代わりに\を使用しました。どのように私はこの問題を解決することができますエラーが最後End If

Sub copyfile() 
    Const SourceFile = "D:\Macrotest\B\xxxxxxxxx_queries.docx" 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    'Check to see if the file already exists in the destination folder 
    If fso.FileExists(DestinationFile) Then 
     'Check to see if the file is read-only 
     If Not fso.GetFile(DestinationFile).Attributes And 1 Then 
      'The file exists and is not read-only. Safe to replace the file. 
      fso.CopyFile SourceFile, "\", True 
     Else 
      'The file exists and is read-only. 
      'Remove the read-only attribute 
      fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes - 1 
      'Replace the file 
      fso.CopyFile SourceFile, "\", True 
      'Reapply the read-only attribute 
      fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes + 1 
     End If 
    Else 
     'The file does not exist in the destination folder. Safe to copy file to this folder. 
     fso.CopyFile SourceFile, "\", True 
    End If 
    Set fso = Nothing 
End Sub 

enter image description here

fso.CopyFile SourceFile, "\", Trueに示して?

+0

なぜあなたのコードのスクリーンショットを投稿しますか?ポイントは何ですか?あなたの質問を修正するまで下降。 – Tomalak

+0

それは良い、downvote削除されます。 – Tomalak

+0

"今upvoteそれは"まあ、うん、うーん、それはどのように動作していない。そして、なぜすべてのブロック引用符を使用していますか?どちらの行がエラーを正確にスローしますか?実際のエラーを投稿にコピーできますか?スクリーンショットは補完的*として素敵です。 –

答えて

0

"\"は現在のドライブのルートディレクトリです(おそらくC:\)。そこに書き込みアクセス権がないように見えるので、エラーがどこから来ているのです。

ファイルを現在の作業ディレクトリにコピーするには、.\.は現在のディレクトリのパス表記)を使用します。

fso.CopyFile SourceFile, ".\", True 
+0

ポップアップやエラーはありませんが、ファイルは現在のドライブまたはフォルダにありません。 – ARYF

+0

テストしたところ正常に動作しました。現在の作業ディレクトリがあなたが思うものであることを確認してください: 'WScript.Echo CreateObject(" WScript.Shell ")。CurrentDirectory' –

関連する問題