2017-04-20 106 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.SaveAs之前添加'ActiveSheet.move' ...' –