复制数据时连接数据

时间:2016-09-30 14:37:33

标签: excel vba excel-vba

我正在使用大型数据集。我试图修剪数据。

感谢查看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时。我不能只使用'&'因为它不是一个字符串,因为我正在处理范围。是否有可能在复制数据的同一时间点连接?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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