[英]How to export in CSV with VBA?
我使用此功能以CSV格式導出數據范圍:
Sub Fct_Export_CSV()
Dim Value As String
Dim size As Integer
Value = ThisWorkbook.Path & "\Export_" & Sheets(1).range("B20").Value & ".csv"
chemincsv = Value
Worksheets("Database").Select
Dim Plage As Object, oL As Object, oC As Object, Tmp As String, Sep$
Sep = ";"
size = Worksheets("Database").range("B" & Rows.Count).End(xlUp).Row
Set Plage = ActiveSheet.range("A1:G" & size)
Open chemincsv For Output As #1
For Each oL In Plage.Rows
Tmp = ""
For Each oC In oL.Cells
Tmp = Tmp & CStr(oC.Text) & Sep
Next
Print #1, Tmp
Next
Close
MsgBox "OK! Export to " & Value
End Sub
出口作品,但我也有一個; 在每一行的末尾。
導出CSV示例:
文件夾;樹;組;名字;姓氏; sAMAccountName;規則;
FOLDER; TREE; DL-FOLDER-R; John; TOTO; JTOT; R;
我在哪里修改此VBA腳本以生成不帶“;”的CSV文件? 在末尾 ?
我的目標:
文件夾;樹;組;名字;姓氏; sAMAccountName;規則
文件夾;樹; DL-FOLDER-R; John; TOTO; JTOT; R
有多種方法可以實現此目的。 例如。 您可以將if條件放在Tmp = Tmp & CStr(oC.Text) & Sep
,如果迭代是最后一個,則不附加sep。
另一種方法是使用左函數。 如果不修改大量代碼,我認為這將是一個不錯的方法。 這是一個示例代碼(已嘗試):
Sub Fct_Export_CSV()
Dim Value As String
Dim size As Integer
Value = ThisWorkbook.Path & "\Export_" & Sheets(1).range("B20").Value & ".csv"
chemincsv = Value
Worksheets("Database").Select
Dim Plage As Object, oL As Object, oC As Object, Tmp As String, Sep$
Sep = ";"
size = Worksheets("Database").range("B" & Rows.Count).End(xlUp).Row
Set Plage = ActiveSheet.range("A1:G" & size)
Open chemincsv For Output As #1
For Each oL In Plage.Rows
Tmp = ""
For Each oC In oL.Cells
Tmp = Tmp & CStr(oC.Text) & Sep
Next
'take one less than length of the string number of characters from left, that would eliminate the trailing semicolon
Tmp = left(Tmp, Len(Tmp)-1)
Print #1, Tmp
Next
Close
MsgBox "OK! Export to " & Value
End Sub
在最后一個打印語句之前添加了一行代碼,應該可以正常工作。 我知道。
如果您在將分號設置為本地分隔符的機器上工作,則可以將工作表另存為csv並指定Local:=True
Worksheets("Database").SaveAs Filename:=Value, FileFormat:=xlCSV, Local:=True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.