excel中的CSV文件与双引号内的字段

我想从Excel中创build一个CSV文件,其中字段中的所有数据将在双引号内。 我发现这个代码从一个类似的问题,它几乎工作…

Sub CSVFile() Dim SrcRg As Range Dim CurrRow As Range Dim CurrCell As Range Dim CurrTextStr As String Dim ListSep As String Dim FName As Variant FName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv") If FName <> False Then ListSep = Application.International(xlListSeparator) If Selection.Cells.Count > 1 Then Set SrcRg = Selection Else Set SrcRg = ActiveSheet.UsedRange End If Open FName For Output As #1 For Each CurrRow In SrcRg.Rows CurrTextStr = "" For Each CurrCell In CurrRow.Cells CurrTextStr = CurrTextStr & """" & CurrCell.Value & """" & ListSep Next While Right(CurrTextStr, 1) = ListSep CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1) Wend Print #1, CurrTextStr Next Close #1 End If End Sub 

它可以让我将选定的字段保存为CSV格式,结果如下所示:

 "A1","B1","C3" "A2","B2","C3" 

我还需要的是在最后一个字段之后加一个逗号,就像这样:

 "A1","B1","C3", "A2","B2","C3", 

我不知道这种代码,可以使用一些帮助。

此外,如果这项工作如何保存在Excel表中的macros,所以我可以在任何时候使用它,我需要它。

谢谢约翰

我认为这一点代码是从每一行中删除列表分隔符/逗号。 尝试删除这三行,看看是否修复它。

 While Right(CurrTextStr, 1) = ListSep CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1) Wend 

将包含此脚本的代码模块放在您的“个人”Excel工作簿中,这样无论打开什么文件,它都将始终可供您使用。

否则,只需将该代码模块放置在所需的工作簿代码模块中,并确保保存为XLSM。