Excel在VB6中将数字导出为字符串时忽略区域设置

时间:2018-08-16 12:01:38

标签: excel vb6 internationalization

在现有的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

导出的工作表(德语区域设置):

Exported worksheet with incorrect value

有趣的是,单元格格式已更改为“数字”,这在英语区域设置中永远不会发生,即保持常规格式。此外,对于小于1(即0,475)的值,不会发生这种情况。

Excel似乎很聪明并且正在将其转换为数字,但始终使用点作为小数点和逗号作为千位分隔符。我应该在导出前始终将小数点分隔符转换回点,还是在此处丢失某些内容?

我使用Excel Professional Plus 2010。

0 个答案:

没有答案