Vba 如何在宏创建的.csv文件中指定列删除器?
我使用给出的宏作为这个问题的公认答案。 但是,我已将windows默认行分隔符从逗号编辑为分号 因此,如果我将单个工作表excel工作簿保存为.csv,则生成的txt是正确的,可以根据需要使用分号 但是,当我使用宏从多工作表excel工作簿自动生成单个.csv文件时,所有文件都只生成逗号分隔 我只能假设宏没有引用excel所引用的相同系统变量,如果有人能给我指出解决方案,我将不胜感激。或者,如果您不介意的话,只需发布上面链接的问题的宏解决方案的编辑版本 谢谢你抽出时间 编辑14_0412 1: 我偶然发现:Vba 如何在宏创建的.csv文件中指定列删除器?,vba,excel,csv,Vba,Excel,Csv,我使用给出的宏作为这个问题的公认答案。 但是,我已将windows默认行分隔符从逗号编辑为分号 因此,如果我将单个工作表excel工作簿保存为.csv,则生成的txt是正确的,可以根据需要使用分号 但是,当我使用宏从多工作表excel工作簿自动生成单个.csv文件时,所有文件都只生成逗号分隔 我只能假设宏没有引用excel所引用的相同系统变量,如果有人能给我指出解决方案,我将不胜感激。或者,如果您不介意的话,只需发布上面链接的问题的宏解决方案的编辑版本 谢谢你抽出时间 编辑14_0412 1:
Application.PathSeparator
并尝试将其添加到此处:
For Each WS In ThisWorkbook.Worksheets
WS.SaveAs SaveToDirectory & WS.Name, xlCSV, "", "", False, False, False, Application.PathSeparator
Next
我还尝试放置一个简单的字符串
宏完成时没有错误,但输出是相同的。我很好地解决了这个问题。我不能说这是应该怎么做的,我只能说,它的工作,因为我需要它 以我上面链接的示例为例,以下是对我有效的方法 我扩展了SaveAs,以便在本地参数中包含对Application.pathselector的引用 如果有人能提供一个更正确的版本,请这样做! 我对VB语法一无所知
Public Sub SaveWorksheetsAsCsv()
Dim WS As Excel.Worksheet
Dim SaveToDirectory As String
Dim CurrentWorkbook As String
Dim CurrentFormat As Long
CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
' Store current details for the workbook
Application.DisplayAlerts = False
SaveToDirectory = "C:\"
For Each WS In ThisWorkbook.Worksheets
WS.SaveAs SaveToDirectory & WS.Name, xlCSV, "", "", False, False, False, False, False, Application.PathSeparator
Next
' Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True
' Temporarily turn alerts off to prevent the user being prompted
' about overwriting the original file.
End Sub