【问题标题】:How can I specify the column deliniator in a macro created .csv file?如何在宏创建的 .csv 文件中指定列分隔符?
【发布时间】:2014-04-13 02:36:57
【问题描述】:

我正在使用给出的宏作为这个问题的公认答案。 Saving excel worksheet to CSV files with filename+worksheet name using VB

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

我还尝试放置一个简单的字符串“;”。

宏完成没有错误,但输出是一样的。

【问题讨论】:

    标签: vba excel csv


    【解决方案1】:

    我很清楚。我不能说这就是它应该做的,我只能说它按我的需要工作。

    以我上面链接的示例为例,这对我有用。

    我扩展了 SaveAs 以在 Local 参数中包含对 Application.PathSeparator 的引用。 http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.saveas.aspx

    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
    

    如果有人可以提供更正确的版本,请提供! (我对 VB 语法一无所知)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 2011-03-07
      • 2014-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多