Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在excel中粘贴十进制数/逗号和小数点分隔符_Vba_Excel - Fatal编程技术网

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

Vba 在excel中粘贴十进制数/逗号和小数点分隔符,vba,excel,Vba,Excel,我想使用DDE将数据输入excel。我每秒从DDE中获取一个新值,并使用宏将每个值存储在下一行中。就这么好 问题是十进制分隔符 我从DDE得到一个类似-5.18834的值 使用宏或将其粘贴到excel中,值显示为-518.557,但实际值为-518557。 excel错误地解释了小数点。当我在记事本中粘贴相同的值时,我得到了正确的值,即-5.18557 我在excel中尝试将值除以10000,但有些值是5个数字而不是6个数字,因此再次出错 我尝试格式化单元格,更改excel选项中的小数点分隔符,

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

问题是十进制分隔符

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

我尝试格式化单元格,更改excel选项中的小数点分隔符,更改pc上的区域设置,但这些都不起作用。 我还尝试在宏中添加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选项更改分隔符


如果您不提供代码,它将无法帮助您。请看我想要的答案。老实说,刚才更改excel选项中的小数分隔符确实有效。也许这与重新启动excel(?)有关。也就是说,您的解决方案更好,因为现在这不会影响任何其他excel工作表,也不会影响我使用excel的方式。我怀疑这与您只将十进制分隔符从“.”更改为“.”有关,但没有更改千位分隔符,这也是“.”。这就导致了这样的问题。小数分隔符和千分隔符不能相同。