2017-04-20 7 views
1

データをコピーして新しいシートに貼り付け、シート名をユーザーの要件に従って変更して、同じ名前で希望の場所に保存する必要があります。コードを書いて実行しましたが、指定された場所でファイルを見つけることができません。私にこれを手伝ってください。.CSVファイルとしてシートを保存する

Sub saveascsv() 

Dim Rng As Range 
Dim filenam As Variant 
Dim saveasfile As Variant 

filenam = InputBox("Enter name of the file to be saved") 

Set Rng = Range("E1:H" & Range("H" & Rows.Count).End(xlUp).Row) 
Rng.Select 
Selection.Copy 

ActiveWorkbook.Sheets.Add after:=Worksheets("Part_Number") 
ActiveSheet.Name = filenam 
ActiveSheet.Paste 

ActiveSheet.Columns("A:D").AutoFit 

Application.CutCopyMode = False 

saveasfile = Application.GetSaveAsFilename(InitialFileName:=filenam, 
FileFilter:="CSV (Comma delimited) (*.csv), *.csv", Title:="Save As") 

If saveasfile <> "False" Then 
    MsgBox "saveas " & filenam 
End If 

End Sub 
+0

実際にcsvファイルを生成するコードを投稿してください。 –

+0

申し訳ありませんが、私はあなたを得ることができません。@ DavidG –

+0

@ DavidG-同じコードで私はCSVファイルを生成します –

答えて

2

メッセージボックスを保存して表示するには、ファイルの名前を取得するだけで何も保存しません。

If saveasfile <> "False" Then 
    ActiveSheet.move      ' <-- Add this line 
    ActiveSheet.SaveAs saveasfile, xlCSV ' <-- Add this line 
    MsgBox "saved as " & saveasfile 
End If 
+0

このコードを試しましたが、既存のブックのファイル名も新しい名前に変換されます@ ASH –

+0

これは@ ASHで修正することができます –

+2

さて、 'ActiveSheet.move'を' ActiveSheet.SaveAs ... ' –

関連する問題