4

Windows 7 x64で、Microsoft Excelからコピーされた混合データを使用してクリップボードを取得し、それをMatLabに直接インポートして単一の文字配列にするMatLabプログラムを作成しています。

MatLab で str = clipboard('paste') を使用すると、Excel からコピーされたすべてのテキスト データは問題ありませんが、コピーされた数値データは小数点以下の桁数が失われます。

たとえば、セル A1 に数値 2113.12389881239 が含まれているが、セルの書式設定のために値 2113.123899 しか表示されない場合、実際のセル値 2113.12389881239 ではなく、2113.123899 が Excel から MatLab にコピーされます。

表示されている値ではなく、Excel に保存されている正確なセル値をコピーする方法を知りたいです。

前もって感謝します。

4

1 に答える 1

0

次の値: .1234567 が与えられ、小数点以下 1 桁から 7 桁まですべてフォーマットされている場合、別のプログラム (メモ帳) にコピーして貼り付けると、次の結果が得られます。

0.1 
0.12 
0.123 
0.1235 
0.12346 
0.123457 
0.1234567 

一度に 1 つの数値をコピーする場合、次のマクロを使用しました。

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 に答える