Excel VBAmacros将所有以前保存的工作表replace为CSV文件?

这里是我用于将工作簿中的所有工作表保存为单独的CSV文件到用户可以通过文件夹选取器选取的特定path的代码。 但是,如果我对任何电子表格进行了任何更改并再次运行macros,则会提示“文件已存在于此path…..您是否要replace”。 如果我单击是,每个工作表都会出现提示。 如果我点击否,macros将引发错误 – 请参阅截图。

有没有办法,我可以修改macros只是为了replace所有的CSV文件,并提示完全?

Sub CSVAutomation() Dim ws As Worksheet, wb As Workbook Dim pathh As Variant Set wb = ActiveWorkbook With Application.FileDialog(msoFileDialogFolderPicker) .AllowMultiSelect = False If .Show = -1 Then 'a folder was picked pathh = .SelectedItems(1) End If End With If pathh = False Then Exit Sub 'no folder picked; pathh is false Application.ScreenUpdating = False For Each ws In wb.Sheets(Array("01 - Currencies", ...."14 - User Defined Fields")) ws.Copy With ActiveWorkbook 'Application.DisplayAlerts = False 'to avoid overwrite warnings ' pathh is a string (variant) of the path of the folder; does not need pathh.Path .SaveAs pathh & "\" & ws.Name, xlCSV .Close SaveChanges:=False End With Next ws Application.ScreenUpdating = True End Sub 

替换每个工作表和每个工作表

如果单击“否”时出现宏错误

检查我的评论和(如波特兰亚军说)你可以closures一些警报,我用这个

  Application.ScreenUpdating = False Application.DisplayAlerts = False Application.AutomationSecurity = msoAutomationSecurityForceDisable Application.AskToUpdateLinks = False 

使用一个程序放在里面,每次都用它来打开,另一个打开所有警报的帮助。

 Sub Alerts(ScreenUpdate As Boolean, DisplayAlerts As Boolean, AutoSecurity As Boolean, AskToUpdate As Boolean) Application.ScreenUpdating = ScreenUpdate Application.DisplayAlerts = DisplayAlerts Application.AutomationSecurity = IIf(AutoSecurity, msoAutomationSecurityForceDisable, msoAutomationSecurityByUI) Application.AskToUpdateLinks = AskToUpdate End Sub