我正在尝试编写一个将 csv 文件转换为 Excel 文件的函数。我正在使用 Access 2021,我的问题与下面的 **Opentextfile ** 行有关..
Private Sub CreateExcel(strCSVPath As String, strXLSXSpath As String)
Dim xlApp As Object
Dim wb As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set wb = xlApp.Workbooks.Add
With wb.Worksheets(1)
.Opentext strCSVPath, xlTextimportdelimited, Comma:=True
.Range("A1").CurrentRegion.TexttoColumns Destination:=.Range("A1"), dataType:=xlGeneral
End With
wb.SaveAs strXLSXSpath, FileFormat:=xlopenXMLWorkbook
wb.Close Savechanges:=False
xlApp.Quit Savechanges:=False
Set wb = Nothing
Set xlApp = Nothing
End Sub
感谢任何帮助。提前致谢。
OpenText
是 Workbooks
- Excel.Application
对象的集合的方法。换句话说:您打开一个 CSV 文件和一个新的工作簿。
您的代码所做的是创建一个空白工作簿,然后尝试调用该新创建的工作簿的第一个工作表的方法
OpenText
。但是,工作表没有这样的方法 - 因此会出现错误(“对象不支持...”)。
不要创建新的工作簿。相反,使用
xlApp.Workbooks.OpenText strCSVPath, xlDelimited, Comma:=True, DataType:=xlGeneral
Set wb = ActiveWorkbook
wb.SaveAs strXLSXSpath, FileFormat:=xlOpenXMLWorkbook
注意,
xlTextimportdelimited
不存在,它一定是xlDelimited
。为了避免此类错误,始终使用 Option Explicit
。