3

有许多类似的帖子,但没有什么能像我想要理解的那样简单

我想使用 Access 2007 VBA 打开一个 csv 文件并替换列标题行,即:

OldColumn1,OldColumn2

1,2

NewColumn1,NewColumn2

1,2

即不干扰数据的臀部。

然后保存并关闭。

我试过这段代码,但它删除了我的数据:

Sub WriteFile()


  Dim OutputFileNum As Integer
  Dim PathName As String

  PathName = Application.ActiveWorkbook.Path
  OutputFileNum = FreeFile

  Open PathName & "\Test.csv" For Output Lock Write As #OutputFileNum

  Print #OutputFileNum, "NewCol1" & "," & "NewCol2"


  Close OutputFileNum

End Sub
4

2 回答 2

1
  1. 导入或链接到 .csv,以便您在 Access 2007 数据库中拥有记录集。
  2. 使用 NewColumn[x] 作为 OldColumn[x] 的别名编写查询。
  3. 编写 vba 代码以使用 TransferText 功能或制作宏以执行相同操作以将查询导出为 .csv 文件(如果需要/需要覆盖原始 csv)。

显然,您可以做很多额外的事情来为任何数量或类型的文件自动化和重现这个概念。但上述解决方案应该适用于所有 MS Access 环境。

如果您想了解这些步骤的详细信息,请告诉我。

于 2012-12-10T18:15:10.410 回答
0

除了我之前的评论,请参阅使用 Excel 参考的方法:

Public Sub EditCsv()

Dim xlApp As Object
dim xlWbk As Object
Dim xlWst As Object

    Set xlApp = CreateObject("Excel.Application")
    Set xlWbk = xlApp.Workbooks.Open ".../Test.csv" 'Amend this to your needs
    Set xlWst = xlWbk.Sheets(1)

    'This assumes the columns are at the beginning of the file
    xlWst.Range("A1") = "My New Column Name"
    xlWst.Range("B1") = "My New Second Column Name"

    xlWbk.Close -1 'Close and save the file here
    xlApp.Quit

    Set xlApp = Nothing
    Set xlWbk = Nothing
    Set xlWst = Nothing

End Sub
于 2012-12-11T09:48:55.967 回答