我想从excel创建一个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工作表中保存一个宏,这样我就可以在任何需要的时候使用它。
由于 约翰
答案 0 :(得分:1)
我认为这段代码正在从每行中删除列表分隔符/逗号。尝试删除这三行,看看是否能修复它。
While Right(CurrTextStr, 1) = ListSep
CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1)
Wend
将包含此脚本的代码模块放在“PERSONAL”Excel工作簿中,以便无论打开哪个文件,它始终可供您使用。
否则,只需将此代码模块放在所需的工作簿代码模块中,并确保另存为XLSM。