gpt4 book ai didi

vba - 使用 VBA 导入分号分隔的 CSV 文件

转载 作者:行者123 更新时间:2023-12-02 09:55:32 24 4
gpt4 key购买 nike

我在通过 VBA 代码使用 Excel 打开 .csv 文件时遇到问题。我的数据组织如下:

Number;Name;Price1;Price2;City 
1234;"John Smith";"1,75 EUR";"2,15 EUR";"New Mexico"
3456;"Andy Jahnson";"12,45 EUR";"15,20 EUR";London
3456;"James Bond";"42,34 EUR";"9,20 EUR";Berlin

当我从 Windows 资源管理器中通过 Excel 手动打开此文件时,一切看起来都很好,所有值都正确分隔。看起来像这样:

Example1

当我尝试通过 VBA 打开它时,使用

Workbooks.Open fileName:=strPath & "thisFile.csv"

数据用逗号分隔,所以看起来像这样:

Example2

当我使用OpenText函数时弹出同样的错误结果

Workbooks.OpenText filename:=strPath & "thisFile.csv", DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False

当我尝试使用 this thread 的解决方案时。有什么想法吗?

最佳答案

我希望您使用的是比 Excel 2000 更新的版本。这是我在具有德语格式设置的计算机上使用 Excel 2016 的体验:显然是 Workbooks.Open 选项分隔符(FormatDelimiter)仅在您打开 .txt 文件时应用。如果 Local 设置为 False(默认值),则将使用 VBA 语言设置打开文件,并使用逗号作为分隔符。设置 Local:=True 将防止这种情况发生

Workbooks.Open FileName:=strPath & "thisFile.csv", Local:=True

应该适合你。如果您将文件重命名为 .txt,则可以使用 FormatDelimiter 选项:

Workbooks.Open FileName:=strPath & "thisFile.txt", Format:=4 'Format = 4 is semicolon delimited
Workbooks.Open FileName:=strPath & "thisFile.txt", Format:=6, Delimiter:=";" 'Format = 6 is custom delimited

参见MSDN了解更多详情
然而,这会弄乱你的十进制数字,请参阅我的编辑。

<小时/>

编辑:我误读了文档。 FormatDelimiter 选项实际上仅在使用 .txt 文件而不是 .csv 时应用(即使是.OpenText 方法的行为就是这样)。

如果您想确保它在具有不同格式设置的计算机上打开,我现在唯一的解决方案是将其重命名为 .txt 并使用

Workbooks.OpenText FileName:=strPath & "thisFile.txt", DataType:=xlDelimited, Semicolon:=True, DecimalSeparator:=",", ThousandsSeparator:="."

关于vba - 使用 VBA 导入分号分隔的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39890471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com