簡體   English   中英

如何使用VBA以CSV格式導出?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM