4

我正在 Windows 7 x64 下编写一个 MatLab 程序,该程序采用剪贴板,从 Microsoft Excel 复制混合数据,并将其直接导入 MatLab 到单个字符数组中。

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

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

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

提前致谢。

4

1 回答 1

0

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

0.1 
0.12 
0.123 
0.1235 
0.12346 
0.123457 
0.1234567 

假设您想一次复制一个数字,我使用了这个宏:

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 循环所做的那样将其反馈回来,您可以使用一系列值来执行此操作。

于 2013-09-27T05:45:11.453 回答