【发布时间】:2019-06-09 10:59:47
【问题描述】:
我想通过 vba 将一些数据从 excel 导出到 csv 文件,并将小数点分隔符设置为 dot(独立于本地语言或系统设置)。
现在我已经在 excel 文件中有数据,其中一个点作为小数分隔符。它在某些系统上运行良好,但在其他系统上(例如瑞典系统设置),通过 excel vba 导出到 csv 后,小数分隔符显示为逗号。
这是我的相关代码 sn-p 目前的样子:
' Set Export Parameters
Application.DecimalSeparator = "."
Application.ThousandsSeparator = ""
Application.UseSystemSeparators = False
ActiveSheet.Range("D4:G1048571").NumberFormat = "0.00"
' Open (new) output file
Open fileSaveName For Output As #1
' Write date upfront
Print #1, Trim(Worksheets("Output - Upload generator").Range("A2:A2"))
' Set data range for output
Set myrng = Worksheets("Output - Upload generator").Range("A3:G" & lastExportRow)
' Write data
For i = 1 To myrng.Rows.count
For j = 1 To myrng.Columns.count
lineText = IIf(j = 1, "", lineText & ";") & myrng.Cells(i, j).Text
Next j
Print #1, lineText
Next i
' Close output file
Close #1
到目前为止,在某些系统上使用点作为小数分隔符成功导出,但并非在每个系统上独立于本地设置(例如瑞典语设置 - 小数分隔符显示为逗号)。因为我已经尝试了几件事,比如在 excel 高级设置中更改分隔符,但对每个系统都不起作用。
我会很高兴,如果有人可以给我一个提示,我该怎么做才能确保点!
【问题讨论】:
-
澄清一下:“显示”是指在文本编辑器中查看的生成文件,而不是在 Excel 中打开该文件时的样子再来一次?
-
@mbj 是的,当然。我说的是生成文件中的结果,用文本编辑器打开。
-
您使用的是什么版本的 Excel?设置
Application.DecimalSeparator = "."和Application.UseSystemSeparators = False对我有用,我正在使用瑞典区域设置运行 Excel。我有 Excel 版本 1812 的 Office 365。 -
@mbj 好的,我明白了。就我而言,正在使用 Microsoft Excel for Office 365 MSO (16.0.11126.20192) 32 位。
标签: excel vba export-to-csv decimal-point