通过 VBA 将 csv 转换为 excel 文件

问题描述 投票:0回答:1

我正在尝试编写一个将 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

感谢任何帮助。提前致谢。

vba ms-access
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.