2016-03-23 9 views
1

このマクロはきれいに動作しますが、エクスポートしたシートはいつでも最後のフォルダに保存されます。どのように彼らが入るべきであるフォルダを指定するのですか?複数のワークシートをCSVにエクスポートして保存フォルダを指定

Sub asdf() 
Dim ws As Worksheet, newWb As Workbook 

Application.ScreenUpdating = False 
For Each ws In Sheets(Array("sheet1", "sheet2", "sheet3")) 
    ws.Copy 
    Set newWb = ActiveWorkbook 
    With newWb 
     .SaveAs ws.Name & ".csv", xlCSVWindows 
     .Close (False) 
    End With 
Next ws 
Application.ScreenUpdating = True 

End Sub 

答えて

1

コードに保存する場所を指定する必要があります。

これを試してください。

.SaveAs "D:\MyFolder\" & ws.Name & ".csv", xlCSVWindows 

変更 "D:\ MyFolderという\" で

​​
1

この行を置き換え

.SaveAs ws.Name & ".csv", xlCSVWindows 

ご希望の道へ。

+0

はパスとして「/ユーザ/ myusernameと指定/デスクトップ」にドロップしようとしましたが、それが動作していないのですか?何か案は? – user2653322

+0

デスクトップの後に別の「/」を追加します。 "/ Users/myusername/Desktop /"ディレクトリの場所はスラッシュで終わります。 – DDuffy

1

フォルダへのフルパスを含む文字列型varを追加します。次の例では、tempディレクトリを使用します。私はOS Xを実行しているMac上でだからでしょう、この作品を作るのに苦労し

Sub asdf() 

    Dim ws As Worksheet, newWb As Workbook, fp as string 

    fp = environ("TEMP") & Chr(92) 
    'could be something like 
    'fp = environ("USER") & "\desktop\" 

    Application.ScreenUpdating = False 
    For Each ws In Sheets(Array("sheet1", "sheet2", "sheet3")) 
     ws.Copy 
     Set newWb = ActiveWorkbook 
     With newWb 
      .SaveAs fp & ws.Name, xlCSVWindows 'add the path, let saveas add the extension 
      .Close savechanges:=False 
     End With 
    Next ws 
    Application.ScreenUpdating = True 

End Sub 
+0

こんにちは、environ( "TEMP")&Chr(92)ビットについて説明できますか? Chr(92)は私を混乱させました。 – user2653322

+0

ASCIIテーブルの90番目の文字はバックスラッシュです。 [Environ関数](https://msdn.microsoft.com/en-us/library/office/gg264486.aspx?f=255&MSPPError=-2147217396)は、通常1で終了しません。 – Jeeped

関連する問題