我想使用DDE将数据导入excel。我从DDE每秒获得一个新值,并使用宏来存储下一行中的每个值。所以很好。
问题是小数点分隔符。
我从DDE得到一个像-5.18834的值 使用宏或将其粘贴到Excel中,值显示-518.557,但实际值为-518557。 excel错误地解释小数点。当我在记事本中粘贴相同的值时,我得到正确的值,即-5.18557 我尝试在excel中将值除以10000,但是有些值是5个数而不是6个,所以它又错了。
我尝试格式化单元格,在excel的选项中更改小数点分隔符,更改了我的电脑上的区域设置,但这些都不起作用。 我也尝试添加TextFileDecimalSeparator ="。"在宏(在这个网站上找到),但这也不起作用。 宏完成后处理数据不是一种选择。
感谢您的帮助。
答案 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)