我正在Windows 7 x64下编写一个MatLab程序,它使用剪贴板,从Microsoft Excel复制混合数据,并将其直接导入MatLab到一个char数组中。
当我在MatLab中使用str = clipboard('paste')时,从excel复制的所有文本数据都很好,但复制的数字数据会丢失一些小数位。
例如,如果单元格A1包含数字2113.12389881239,但由于单元格格式化而仅显示值2113.123899,则将2113.123899从excel复制到MatLab而不是实际单元格值2113.12389881239。
我想知道如何复制存储在Excel中的确切单元格值而不是显示的值。
提前致谢。
答案 0 :(得分: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循环反馈,则可以使用一系列值执行此操作。