您的文件看起来很小(297 行),因此您可以很快地读取和写入它们。您引用了不存在的 Excel CSV,并在示例中显示了以空格分隔的数据。此外,Access 被限制为 255 列,而 CSV 则不是,因此不能保证这会起作用
Sub StripHeaderAndFooter()
Dim fs As Object ''FileSystemObject
Dim tsIn As Object, tsOut As Object ''TextStream
Dim sFileIn As String, sFileOut As String
Dim aryFile As Variant
sFileIn = "z:\docs\FileName.csv"
sFileOut = "z:\docs\FileOut.csv"
Set fs = CreateObject("Scripting.FileSystemObject")
Set tsIn = fs.OpenTextFile(sFileIn, 1) ''ForReading
sTmp = tsIn.ReadAll
Set tsOut = fs.CreateTextFile(sFileOut, True) ''Overwrite
aryFile = Split(sTmp, vbCrLf)
''Start at line 3 and end at last line -1
For i = 3 To UBound(aryFile) - 1
tsOut.WriteLine aryFile(i)
Next
tsOut.Close
DoCmd.TransferText acImportDelim, , "NewCSV", sFileOut, False
End Sub
编辑各种评论
可以手动将文本文件导入 MS Access,这将允许您选择自己的单元格分隔符和文本分隔符。您需要从菜单中选择外部数据,选择您的文件并逐步完成向导。
关于导入和链接数据和数据库对象——适用于:Microsoft Office Access 2003
导入导出数据简介——适用于:Microsoft Access 2010
使用向导完成导入后,您可以保存导入规范并在下一个 DoCmd.TransferText 中使用它,如 @Olivier Jacot-Descombes 所述。这将允许您使用非标准分隔符,例如分号和单引号文本。