要在excel vba中另存为CSV格式的文件
我使用以下代码将活动工作表保存为CSV,但在该文件夹中找不到输出文件。代码有什么问题 代码供您参考:要在excel vba中另存为CSV格式的文件,excel,vba,csv,ms-word,powerpoint,Excel,Vba,Csv,Ms Word,Powerpoint,我使用以下代码将活动工作表保存为CSV,但在该文件夹中找不到输出文件。代码有什么问题 代码供您参考: Sub Save_CSV() Application.ScreenUpdating = False Application.DisplayAlerts = False SaveNAme = "INDENTED_BOM" SavePath = Dir("C:\Users\350153\Desktop\AUTOMATION (STRUCTURES)
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
无需复制/粘贴即可执行此操作,因为
工作表
对象具有另存为
方法,因此无需执行以下操作:
工作簿创建新工作簿。添加
SaveAs
方法MsgBox
会提醒您,然后过程将退出而不保存
Sub SaveAs_CSV()
Dim SaveNAme$、SavePath$、csvFullName$
Application.ScreenUpdating=False
Application.DisplayAlerts=False
SaveNAme=范围(“B2”)
保存路径=范围(“B3”)
如果正确(SavePath,1)Application.PathSeparator,则SavePath=SavePath&Application.PathSeparator
csvFullName=savePath&SaveNAme&“.csv”
如果Dir(csvFullName)“,则
'文件已存在,请通知用户并退出过程
MsgBox csvFullname&“已存在!文件将不会另存为CSV。”,vbInformation
去早退
如果结束
ActiveSheet.SaveAs文件名:=csvFullName_
,FileFormat:=xlCSVWindows,CreateBackup:=False
行(“1:4”).EntireRow.Delete
列(“A:D”)。自动拟合
活动窗口,关闭
提前退出:
Application.ScreenUpdating=True
Application.DisplayAlerts=True
端接头
无需复制/粘贴即可执行此操作,因为工作表
对象具有另存为
方法,因此无需执行以下操作:
工作簿创建新工作簿。添加
SaveAs
方法MsgBox
会提醒您,然后过程将退出而不保存
Sub SaveAs_CSV()
Dim SaveNAme$、SavePath$、csvFullName$
Application.ScreenUpdating=False
Application.DisplayAlerts=False
SaveNAme=范围(“B2”)
保存路径=范围(“B3”)
如果正确(SavePath,1)Application.PathSeparator,则SavePath=SavePath&Application.PathSeparator
csvFullName=savePath&SaveNAme&“.csv”
如果Dir(csvFullName)“,则
'文件已存在,请通知用户并退出过程
MsgBox csvFullname&“已存在!文件将不会另存为CSV。”,vbInformation
去早退
如果结束
ActiveSheet.SaveAs文件名:=csvFullName_
,FileFormat:=xlCSVWindows,CreateBackup:=False
行(“1:4”).EntireRow.Delete
列(“A:D”)。自动拟合
活动窗口,关闭
提前退出:
Application.ScreenUpdating=True
Application.DisplayAlerts=True
端接头
寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建。请使用单元格B2和B3的内容更新您的问题。B2将是我的文件名,B3是CSV文件必须保存的位置。截屏、在网站上发布图像、复制链接并将其集成到问题中是否真的更容易,只需直接复制和粘贴代码,这样我们就不必重新键入完整的代码了?这不是要求您的。寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误,以及在问题本身中复制所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建。请使用单元格B2和B3的内容更新您的问题。B2将是我的文件名,B3是CSV文件必须保存的位置。截屏、在网站上发布图像、复制链接并将其集成到问题中是否真的更容易,只需直接复制和粘贴代码,这样我们就不必重新输入完整的代码了?这不是要求你的。
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