【发布时间】:2021-06-03 17:35:23
【问题描述】:
我编写了以下代码,目的是将两个范围保存到 CSV 文件中:
Sub Export_range_to_CSV()
Dim myCSVFileName As String
Dim myWB As Workbook
Dim tempWB As Workbook
Dim range1 As Range
Dim range2 As Range
Set range1 = Sheets("sheet1").Range("G2:G4")
Set range2 = Sheets("sheet1").Range("G5:H53")
Application.DisplayAlerts = False
On Error GoTo err
Set myWB = ThisWorkbook
myCSVFileName = "filepath" & "\" & "name" & VBA.Format(VBA.Now, "yyyymmdd_hhmm") & ".csv"
range1.Copy
Set tempWB = Application.Workbooks.Add(1)
With tempWB
.Sheets(1).Range("A1").PasteSpecial xlPasteValues
range2.Copy
.Sheets(1).Range("A4").PasteSpecial xlPasteValues
.SaveAs Filename:=myCSVFileName, FileFormat:=xlCSV, CreateBackup:=False
.Close
End With
err:
Application.DisplayAlerts = True
End Sub
上面的代码完成了这项工作,但对于range1,它在保存为 CSV 时在字符串末尾有逗号。我需要删除这些才能使下游的工作正常工作。如何去掉range1末尾的逗号?
这是保存为 CSV 文件后的样子:
范围1
- # X=Y, <- need to remove these commas
- # Z=U,
- # M=Q,
范围2
- datetime,quantity
- 2021-03-05 23:00:00+00:00,17
- 2021-03-05 23:30:00+00:00,17
- 2021-03-06 00:00:00+00:00,17
- 2021-03-06 00:30:00+00:00,17
我认为问题出在 range1 只有一列,一旦 range2 发挥作用,它假定 range1 也应该是两列。
【问题讨论】:
标签: excel vba export-to-csv