Vba 复制数据时连接数据

Vba 复制数据时连接数据,vba,excel,Vba,Excel,我正在处理一个大型数据集。我正在尝试整理数据 由于查看stackoverflow,我几乎可以修改一些代码来满足我的需要 Sub CopyData() Dim sourceColumn As Range, targetColumn As Range Set sourceColumn = Workbooks("Parcels Data.xlsm").Worksheets("Parcels").Columns("A") Set targetColumn = Workbooks("Parcel Dat

我正在处理一个大型数据集。我正在尝试整理数据

由于查看stackoverflow,我几乎可以修改一些代码来满足我的需要

Sub CopyData()
Dim sourceColumn As Range, targetColumn As Range

Set sourceColumn = Workbooks("Parcels Data.xlsm").Worksheets("Parcels").Columns("A")
Set targetColumn = Workbooks("Parcel Data for NSDB.xlsm").Worksheets("Imported").Columns("A")

sourceColumn.Copy Destination:=targetColumn
Set sourceColumn = Workbooks("Parcels Data.xlsm").Worksheets("Parcels").Columns("B")
Set targetColumn = Workbooks("Parcel Data for NSDB.xlsm").Worksheets("Imported").Columns("B")

sourceColumn.Copy Destination:=targetColumn

End Sub
这是我需要的

我需要将B列和C列连接在一起,并在值之间留一个空格。这个新文件将用于导入其他数据库,所以我需要一个特定的格式


我一直在尝试在使用Range.Copy时如何使用“&”。我不能只使用“&”,因为它不是字符串,因为我处理的是范围。是否可以在复制数据的同一时间点进行连接?

您需要使用循环-您不能一次完成整个范围的连接。这应该让你开始:

Sub Concat()

Dim lRow As Long

lRow = Range("B" & Rows.count).End(xlUp).Row

For i = 2 To lRow
    Range("C" & i) = Range("A"& i) & " " & Range("B" & i)
Next i

End Sub

问题是,如何将两个值连接在一起<单元格中的code>=A1&&&B1将取
A1
B1
中的内容,并用空格分隔。对不起,我的问题应该更清楚一些。我一直在尝试在使用Range.Copy时如何使用“&”。我不能只使用“&”,因为它不是字符串,因为我处理的是范围。是否可以在复制数据的同一时间点进行连接?@Grant Nope,您必须逐个循环范围内的值,或按照Pierre的建议将它们读入数组等。实际上,虽然这取决于数据的大小,但不会花费很长时间。谢谢,一旦我了解了代码的工作原理,我就能够修改以填充我需要的所有列。这帮了大忙!
Sub CopyData()
Dim source, dest, i&
With Workbooks("Parcels Data.xlsm").Worksheets("Parcels")
    source = Range(.Range("A1"), .Cells(.Rows.Count, 2)).Value
End With
ReDim dest(1 To UBound(source), 1 To 1)
For i = 1 To UBound(dest)
    dest(i,1) = source(i, 1) & " " & source(i, 2)
Next
With Workbooks("Parcel Data for NSDB.xlsm").Worksheets("Imported")
    Range(.Range("A1"), .Cells(UBound(dest), 1)) = dest
End With
End Sub