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

Pasting decimal numbers in excel / comma and point decimal separator

我想使用 DDE 将数据导入 excel。我每秒从 DDE 获取一个新值,并使用宏将每个值存储在下一行中。太好了。

小数点分隔符有问题。

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

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

感谢您的帮助。

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

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

' here do your paste

Application.UseSystemSeparators = True

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

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

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

有一种不用写宏的更快的方法。您可以通过 Excel 选项更改分隔符。

https://social.technet.microsoft.com/Forums/office/en-US/10eb503a-2076-4e80-8488-82495e051b30/how-to-change-the-thousands-separator-temporarily-in-excel-2010?forum=excel