首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用VBA输出CSV?

如何用VBA输出CSV?
EN

Stack Overflow用户
提问于 2016-12-06 09:15:27
回答 2查看 457关注 0票数 1

我使用这个函数导出CSV中的数据范围:

代码语言:javascript
运行
复制
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:

Folder;Tree;Group;FirstName;LastName;sAMAccountName;Rules; 文件夹;树;DL-文件夹-R;John;TOTO;JTOT;R;

我在哪里修改这个VBA脚本以生成没有";“结尾的CSV?

我的目标是:

Folder;Tree;Group;FirstName;LastName;sAMAccountName;Rules 文件夹;树;DL-文件夹-R;John;TOTO;JTOT;R

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-06 09:37:54

要做到这一点,有多种方法。就像。如果迭代是最后一次迭代,您可以在Tmp = Tmp & CStr(oC.Text) & Sep中添加一个if条件,而不是附加sep。

另一种方法是使用左函数。在不修改大部分代码的情况下,我认为这是一个很好的方法。下面是一个示例代码(没有尝试过):

代码语言:javascript
运行
复制
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

在最后一次打印语句之前添加了一行代码,应该可以工作。让我知道。

票数 3
EN

Stack Overflow用户

发布于 2016-12-06 10:07:45

如果在将分号设置为本地分隔符的机器上工作,则可以将工作表保存为csv并指定Local:=True

代码语言:javascript
运行
复制
Worksheets("Database").SaveAs Filename:=Value, FileFormat:=xlCSV, Local:=True
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40991661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档