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