首页 > 解决方案 > 有没有办法用 VBA 打开 CSV 并选择分隔符?

问题描述

我有一个 CSV,其中的数据用分号“;”分隔 我想用 VBA 在 Excel 中打开它。就我而言,这个 VBA 代码将由来自不同位置的用户运行,所以我想编写一个对本地设置不敏感的代码,并在任何地方产生相同的输出。

我已经尝试了几个代码,但它不起作用。我不明白为什么在阅读文档后。

使用所有这些说明,工作簿已打开,但数据未正确分离。

例如,这是一个结果,它似乎将行分隔在“,”而不是“;”上 因为我的号码“1,2”已被拆分:

在此处输入图像描述

非常感谢您的任何想法!:-)

祝你有美好的一天,麦克斯

标签: excelvbacsvdelimiter

解决方案


导入函数以指定您的分隔符

更新了工作表分配

Function ImportCSVFile(FilePath As String, Optional Sheet As Worksheet, Optional Delimiter As String = ",")
    ' Requires Reference: Microsoft Scripting Runtime
    Dim RowNumber As Long: RowNumber = 0
    Dim Arr() As String

    Dim oFSO As New FileSystemObject
    Dim oFS As Variant: Set oFS = oFSO.OpenTextFile(FilePath)
    
    If Sheet Is Nothing Then Set Sheet = ActiveSheet
    With Sheet
        Do Until oFS.AtEndOfStream
            RowNumber = RowNumber + 1
            Arr = Split(oFS.ReadLine, Delimiter)
            .Range(.Cells(RowNumber, LBound(Arr) + 1), .Cells(RowNumber, UBound(Arr) + 1)) = Arr
        Loop
    End With
End Function

推荐阅读