在现有的VB6应用程序中,我需要将一些数据网格导出到Excel。数据由可能包含<
或>
字符的双精度值组成,因此所有值实际上都存储为 string 。尽管如此,系统区域设置仍被考虑,并且所有值中的小数点分隔符都是手动设置/替换的。
使用Microsoft Excel 14.0对象库中的Excel.Application
对象进行导出。使用Range("...").Value = myArray()
语句将网格中的确切值填充到Excel工作表中。我从网格手动填充myArray()。
在英语(美国)区域设置中导出值时,一切正常。但是,在德国(德国)上,似乎不遵守小数点分隔符,它用作千位分隔符。最后,值“ 45,120”变为值“ 45120”。
示例应用程序:
Private Sub Command1_Click()
Dim xl As Excel.Application
On Error GoTo ErrorHandler
Set xl = New Excel.Application
xl.Visible = True
xl.Workbooks.Add
xl.Range("A1:A1").Value = "45,120"
ErrorHandler:
Set xl = Nothing
End Sub
导出的工作表(德语区域设置):
有趣的是,单元格格式已更改为“数字”,这在英语区域设置中永远不会发生,即保持常规格式。此外,对于小于1(即0,475)的值,不会发生这种情况。
Excel似乎很聪明并且正在将其转换为数字,但始终使用点作为小数点和逗号作为千位分隔符。我应该在导出前始终将小数点分隔符转换回点,还是在此处丢失某些内容?
我使用Excel Professional Plus 2010。