[英]file to saveas CSV format iin excel vba
我使用以下代碼將我的活動工作表保存為CSV,但在該文件夾中找不到輸出文件。 代碼有什么問題?
代碼供您參考:
Sub Save_CSV()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
SaveNAme = "INDENTED_BOM"
SavePath = Dir("C:\Users\350153\Desktop\AUTOMATION (STRUCTURES)")
Range("A1:D150").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.Copy
Workbooks.Add
With ActiveSheet.Range("A2")
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
End With
ActiveSheet.Columns("A:D").AutoFit
ActiveWorkbook.SaveAs Filename:=SavePath & SaveNAme & ".csv" _
, FileFormat:=xlCSVWindows, CreateBackup:=False
ActiveWorkbook.Save
ActiveWindow.Close
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "Task Finished", vbInformation, "Finished"
End Sub
您可以在不復制/粘貼的情況下執行此操作,因為Worksheet
對象具有SaveAs
方法,因此無需執行以下操作:
Workbooks.Add
創建新工作Workbooks.Add
相反,你應該:
SaveAs
方法 它看起來像這樣,也修改為確保文件尚不存在。 如果文件已存在, MsgBox
提醒您,然后過程將退出而不保存。
Sub SaveAs_CSV()
Dim SaveNAme$, SavePath$, csvFullName$
Application.ScreenUpdating = False
Application.DisplayAlerts = False
SaveNAme = Range("B2")
SavePath = Range("B3")
If Right(SavePath,1) <> Application.PathSeparator Then SavePath = SavePath & Application.PathSeparator
csvFullName = savePath & SaveNAme & ".csv"
If Dir(csvFullName) <> "" Then
'File already exists, alert the user and exit procedure
MsgBox csvFullname & " already exists! The file will not be saved as CSV.", vbInformation
GoTo EarlyExit
End If
ActiveSheet.SaveAs Filename:=csvFullName _
, FileFormat:=xlCSVWindows, CreateBackup:=False
Rows("1:4").EntireRow.Delete
Columns("A:D").AutoFit
ActiveWindow.Close
EarlyExit:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.