复制并粘贴多个单元格而不覆盖现有单元格EXCEL VBA

时间:2014-05-06 20:32:13

标签: excel vba excel-vba

寻找一些指导。

我正在尝试将4个工作表中的所有单元格复制到主工作表中。

我可以将一张数据复制到主工作表,但是当我复制第二张工作表时,它会覆盖以前复制到主工作表的信息。

这是我目前用于复制数据的代码。

Sub Create_Master ()

    Dim sourceColumn As Range, targetColumn As Range

    Set sourceColumn = Worksheets("Sheet1").Columns("A:P")
    Set targetColumn = Worksheets("Master Sheet").Columns("A:P")

    sourceColumn.Copy Destination:=targetColumn

End sub

有什么想法吗?

干杯亚当

1 个答案:

答案 0 :(得分:0)

这样的事可能对你有用......

Sub Create_Master ()

Dim sourceSheet As Worksheet
Dim sourceRange As Range
Dim sourceRows As Integer

Set sourceSheet = Worksheets("Sheet1")

sourceRows = WorksheetFunction.CountA(sourceSheet.Range("A:A"))

Set sourceRange = sourceSheet.Range("A1:P" & sourceRows)

Dim targetSheet As Worksheet
Dim targetRange As Range
Dim targetRows As Integer

Set targetSheet = Worksheets("Master Sheet")

targetRows = WorksheetFunction.CountA(targetSheet.Range("A:A"))

Set targetRange = targetSheet.Range("A" & targetRows + 1 & ":P" & targetRows + 1 + sourceRows)

sourceRange.Copy Destination:=targetRange

Dim sourceSheet As Worksheet Dim sourceRange As Range Dim sourceRows As Integer Set sourceSheet = Worksheets("Sheet1") sourceRows = WorksheetFunction.CountA(sourceSheet.Range("A:A")) Set sourceRange = sourceSheet.Range("A1:P" & sourceRows) Dim targetSheet As Worksheet Dim targetRange As Range Dim targetRows As Integer Set targetSheet = Worksheets("Master Sheet") targetRows = WorksheetFunction.CountA(targetSheet.Range("A:A")) Set targetRange = targetSheet.Range("A" & targetRows + 1 & ":P" & targetRows + 1 + sourceRows) sourceRange.Copy Destination:=targetRange

使用工作表功能" CountA"计算出行的使用方式,假设列A单元格总是被填充,并且您不想在要复制的东西下面的列中有任何数据。如果您在源表和主页上有列标题,那么它们将被复制。所以你可能想让sourceRange从A2开始。

HTH。