Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何在宏创建的.csv文件中指定列删除器?_Vba_Excel_Csv - Fatal编程技术网

Vba 如何在宏创建的.csv文件中指定列删除器?

Vba 如何在宏创建的.csv文件中指定列删除器?,vba,excel,csv,Vba,Excel,Csv,我使用给出的宏作为这个问题的公认答案。 但是,我已将windows默认行分隔符从逗号编辑为分号 因此,如果我将单个工作表excel工作簿保存为.csv,则生成的txt是正确的,可以根据需要使用分号 但是,当我使用宏从多工作表excel工作簿自动生成单个.csv文件时,所有文件都只生成逗号分隔 我只能假设宏没有引用excel所引用的相同系统变量,如果有人能给我指出解决方案,我将不胜感激。或者,如果您不介意的话,只需发布上面链接的问题的宏解决方案的编辑版本 谢谢你抽出时间 编辑14_0412 1:

我使用给出的宏作为这个问题的公认答案。

但是,我已将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