2013-09-27 40 views
3

我正在寫一個MATLAB PROGRAMM Windows下7 64位系統,是以剪貼板,與微軟Excel中複製數據好壞參半,並直接導入MATLAB的到一個單一的字符數組。數值精度時拷貝擅長數字到剪貼板

當我MatLab中使用STR =剪貼板(「粘貼」),從Excel中複製所有文本數據都很好,但數值數據複製丟失了一些小數。

例如,如果單元格A1包含數字2113.12389881239,但由於單元格格式僅顯示值2113.123899,則將2113.123899從excel複製到MatLab而不是實際單元格值21​​13.12389881239。

我想知道如何能夠複製存儲在Excel中確切的單元格值不顯示的值。

在此先感謝。

+0

是否有任何理由不能將單元格格式化爲「@」? – jmac

+0

@jmac有一個原因。同一個excel文件用於其他目的。所以不是很使用完全改變/強制Excel的單元格格式爲文本,僅用於數據複製。 – Transfinito

回答

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循環進行反饋,則可以使用一定範圍的值執行此操作。