将excel数字复制到剪贴板时的十进制精度

我在windows 7 x64下编写了一个MatLab程序,该程序使用剪贴板,从Microsoft Excel中复制混合数据,然后直接将它导入到MatLab中。

当我在MatLab中使用str = clipboard('paste')时,从excel复制的所有文本数据都很好,但数字数据复制时会丢失一些小数位。

例如,如果单元格A1包含数字2113.12389881239,但由于单元格格式仅显示值2113.123899,则将2113.123899从excel复制到MatLab,而不是实际单元格值21​​13.12389881239。

我想知道如何复制存储在Excel中的确切单元格值而不是显示的值。

提前致谢。

给出以下值:.1234567,格式化为小数点后1至7位,当我复制粘贴到另一个程序(记事本)时,得到以下结果:

 0.1 0.12 0.123 0.1235 0.12346 0.123457 0.1234567 

假设你想一次复制一个数字,我使用这个macros:

 Sub FormattedCopy() Dim oldFormat, copyString As String oldFormat = Selection.NumberFormatLocal Selection.NumberFormatLocal = "@" Selection.Copy MsgBox ("Please paste your data") Selection.NumberFormatLocal = oldFormat End Sub 

消息框用于“暂停”该过程,因为更改数字格式将清除剪贴板。 当我粘贴任何值,它正确地显示在记事本为0.1234567

如果您将数字格式的范围保存在一个数组中,并像上面的for循环一样将其反馈回来,则可以使用一系列值来完成此操作。