在excel /逗号和点小数分隔符中粘贴十进制数

时间:2015-01-23 08:23:58

标签: excel vba excel-vba

我想使用DDE将数据导入excel。我从DDE每秒获得一个新值,并使用宏来存储下一行中的每个值。所以很好。

问题是小数点分隔符。

我从DDE得到一个像-5.18834的值 使用宏或将其粘贴到Excel中,值显示-518.557,但实际值为-518557。 excel错误地解释小数点。当我在记事本中粘贴相同的值时,我得到正确的值,即-5.18557 我尝试在excel中将值除以10000,但是有些值是5个数而不是6个,所以它又错了。

我尝试格式化单元格,在excel的选项中更改小数点分隔符,更改了我的电脑上的区域设置,但这些都不起作用。 我也尝试添加TextFileDecimalSeparator ="。"在宏(在这个网站上找到),但这也不起作用。 宏完成后处理数据不是一种选择。

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

你的枚举,你已经尝试过的,似乎排除了这一点,但如果以下方法不起作用,我会感到非常困惑:

Application.DecimalSeparator = "."
Application.ThousandsSeparator = ","
Application.UseSystemSeparators = False

' here do your paste

Application.UseSystemSeparators = True

答案 1 :(得分:0)

我遇到了类似的问题 - 我将宏传递给单元格的十进制数字被excel假定为文本...所以我尝试了与你一样完全相同的程序......没有帮助......我甚至尝试了上面提到的解决方案......它也没有帮助。这是一个很好的解决方案。不幸的是,它在我的情况下并不实用,宏只是忽略了它并使用了其他分隔符。我尝试了很多东西,我感到绝望,然后我带着这个笨拙的解决方案来了:

  Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

宏忽略了小数分隔符的设置,所以我决定用正确的分隔符替换给定的分隔符。有用!就像我说它笨拙的解决方案,但只要它有效......

答案 2 :(得分:0)