2017-06-05 4 views
0

プロジェクトで作業していて、1つのワークブックのデータを1つのワークブックの範囲に設定し、それに等しいワークブック。これは一般的にはうまくいくが、状況によっては5桁の数字がカンマで区切られた1つのフィールドがある。本質的に、カンマで区切られた郵便番号と場合によってはスペースも含まれます。 (そのデータには空白があるはずはありませんが、存在する可能性は非常にあります)範囲を使用して値を転送するときに長い文字列のデータを失う

たとえば、コピーするセルは次のようになります。 11111,22222,33333,44444,55555,66666 、77777,88888,99999

と、このように転送されます: 1.11112222233333E + 44または 111,112,222,233,333,000,000,000,000,000,000,000,000,000,000

これは私が欲しいものは明らかではありません。これをどうやって解決するのですか?

ここに関連コードがあります。問題のあるデータを持つ列は、サービスエリアワークシートの列Fです。

Dim MainWB As Workbook 
Set MainWB = Workbooks("SATemplate Data Compile.xlsm") 
Dim MDSAT As Range 

'Setting the range I want to transfer 
Set MDSAT = wb.Worksheets("Service Areas").Range("A13:G13", wb.Worksheets("Service Areas").Range("A13:G13").End(xlDown).End(xlDown).End(xlUp)) 

'Transferring the range values 
MainWB.Sheets("SATemplates").Range("A" & Rows.count).End(xlUp).Offset(1).Resize(MDSAT.Rows.count, MDSAT.Columns.count).Cells.Value = MDSAT.Cells.Value 

これは、新しい範囲をセルの値と同じに設定すると問題になりますか?これを複数の部分に分割して、異なる範囲で列Fのデータを取得する必要がありますか?

答えて

1

は(値(テキスト)として強制的に)これを試してみてください:

With MainWB.Sheets("SATemplates").Range("A" & Rows.count).End(xlUp).Offset(1).Resize(MDSAT.Rows.count, MDSAT.Columns.count) 
    .NumberFormat = "@" 'format as text 
    .Value = MDSAT.Value 
End With 
+1

が、これは完全に働いた、ありがとうございました! – Lui

1

形式のテキストではない数字などの細胞....

関連する問題