Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用范围传输值时丢失长字符串中的数据_Vba_Excel - Fatal编程技术网

Vba 使用范围传输值时丢失长字符串中的数据

Vba 使用范围传输值时丢失长字符串中的数据,vba,excel,Vba,Excel,因此,我正在处理一个项目,在某一点上,我将数据从一个工作簿复制到另一个工作簿,方法是在一个工作簿上设置一个范围,然后将目标工作簿上的范围设置为与其相等。这在一般情况下效果很好,但我有一个字段,在某些情况下,它的数据是用逗号分隔的五位数。邮政编码基本上是由逗号和空格分隔的。(虽然数据中不应该有空格,但很可能有。) 例如,正在复制的单元格将如下所示: 1111122223333344444555555666677778889999 并将按以下方式转移: 1.111122222333E+44或 111

因此,我正在处理一个项目,在某一点上,我将数据从一个工作簿复制到另一个工作簿,方法是在一个工作簿上设置一个范围,然后将目标工作簿上的范围设置为与其相等。这在一般情况下效果很好,但我有一个字段,在某些情况下,它的数据是用逗号分隔的五位数。邮政编码基本上是由逗号和空格分隔的。(虽然数据中不应该有空格,但很可能有。)

例如,正在复制的单元格将如下所示: 1111122223333344444555555666677778889999

并将按以下方式转移: 1.111122222333E+44或 111112222333330000000000000000000000000000000000000000000000000000000

这显然不是我想要的。我该如何解决这个问题

这是相关代码。包含问题数据的列是服务区域工作表的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