通过VBA将CSV文件导入Excel won';t将数据分成不同的列

通过VBA将CSV文件导入Excel won';t将数据分成不同的列,excel,vba,import-from-csv,Excel,Vba,Import From Csv,我有一个包含以下内容的CSV文件filename.CSV: UID;Datum;Klasse;SendungsNr 6177;14.08.20;624;00340434299338038179 6178;14.08.20;624;00340434299338038186 6179;14.08.20;624;00340434299338038193 据我所知(、、等…)这应该导入文件并将数据插入不同的列中: Public Sub OpenCsvFile() filepath = &quo

我有一个包含以下内容的CSV文件
filename.CSV

UID;Datum;Klasse;SendungsNr
6177;14.08.20;624;00340434299338038179
6178;14.08.20;624;00340434299338038186
6179;14.08.20;624;00340434299338038193
据我所知(、、等…)这应该导入文件并将数据插入不同的列中:

Public Sub OpenCsvFile()
    filepath = "C:\folder 1\folder 2\filename.csv"
    Workbooks.OpenText Filename:=filepath, DataType:=xlDelimited, Semicolon:=True
    End Sub
但它没有(请参见下面的“更新””——似乎是文件名有问题),它只使用了a列:

我尝试在另一个标志上指定它,但结果保持不变:

Workbooks.OpenText Filename:=filepath, DataType:=xlDelimited, Other:=True, OtherChar:=";"
既然这没那么难,我想我今天只是“瞎了”,问题在哪里

更新:我发现将“.csv”更改为“.txt”似乎可以做到这一点:它会将其打开到单独的列中。这是一个bug还是期望的行为?我有没有在比赛中疏忽了什么?现在的问题是,如何在不重命名文件的情况下让它工作(如果可以的话)


Update2:无论出于何种原因,解决方案都使用
Local:=True
作为参数(请参见复制通知中的第二个,一些信息也是如此)。为什么这与文件后缀有关?我无法理解。

记录一个宏,看看生成了什么代码。@Tarik它使用“Workbooks.Open”(或其他一些过程,取决于我打开它的方式),但在这种情况下对我没有帮助。您的代码与示例数据的预期效果一样。您的文件以哪种编码保存?@GSerg I ment您使用哪种编码使其工作?但没关系,我已经发现了部分问题(请参阅问题末尾的更新添加),您是说将“filename.csv”更改为“filename.txt”吗?如果是,这只意味着您的文件是/不是csv…记录一个宏,看看生成了什么代码。@Tarik它使用“Workbooks.Open”(或其他一些过程,具体取决于我打开它的方式),但在这种情况下,这对我没有帮助。您的代码与示例数据的效果与预期一样。您的文件以哪种编码保存?@GSerg I ment您使用哪种编码使其工作?但没关系,我已经发现了部分问题(请参阅问题末尾的更新添加),您是说将“filename.csv”更改为“filename.txt”吗?如果是,这仅表示您的文件是/不是csv。。。