使用范围转换值时,会丢失长string中的数据

所以,我正在开发一个项目,并且在某一点上,我通过在一个工作簿上设置一个范围,然后将目标工作簿上的范围设置为等于一个范围,将数据从一个工作簿复制到另一个工作簿。 这在一般情况下效果很好,但我有一个字段,在某些情况下,数据是由逗号分隔的五位数字。 邮编基本上由逗号和可能的空格分隔。 (虽然数据中不应该有空格,但是很有可能)。

因此,例如,正在复制的单元格将如下所示: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,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列中的数据?

试试这个(强制为值(文本)):

 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 

将单元格格式化为文本而不是数字….