我在PT-BR(逗号为十进制)Excel中创建了一个带有VBA功能的电子表格。一切正常。
但客户端(在EN-US上运行)有一个奇怪的问题:十进制数字,例如3.88888被复制为孔数,如388888.具有较少十进制情况的数字,如2.5,被复制为2,5,并且不被认为是数字。
我的功能就是复制值,如下所示:
ResultsSheet.Cells(row,3).Value = DataSheet.Cells(row,11).value
不幸的是,我无法重现此问题。在任何一种语言设置中,我都会得到正确的结果 - 这就是我所期望的。
任何有过这方面经验或向我提供一些信息的人都将不胜感激。我还会提供有关如何重现客户问题的线索。
答案 0 :(得分:3)
正如你所说的那样,重新创建问题非常棘手,但使用某些检查进行类型转换应该有效,下面的代码段。
If InStr(DataSheet.Cells(Row, 11).Value, ",") > 0 Then
'check if text contains a comma, and if so replace with "."
ResultsSheet.Cells(Row, 3).Value = CDec(Replace(DataSheet.Cells(Row, 11).Text, ",", "."))
Else
If IsNumeric(Cells(r, 11).Value) Then
'check if numeric and ensure decimal value on ResultsSheet
ResultsSheet.Cells(Row, 3).Value = CDec(DataSheet.Cells(Row, 11).Text)
Else
'if text then just copy
ResultsSheet.Cells(Row, 3).Value = DataSheet.Cells(Row, 11).Value
End If
End If
希望这能解决您的问题。 Boa Sorte ^^。
米格尔