Excel VBA将行范围从一个工作表复制到另一个工作表中的特定行

时间:2015-07-27 02:31:51

标签: excel vba excel-vba copy

我已经广泛搜索了我需要的东西,但只发现了这个previous post,但并不能完全帮助我(尽管它是最接近的)。

我正在创建一个跟踪器来跟踪我的Excel工作表上的记录,在那里我从源获取数据的原始转储。

"跟踪"片

Column A      Column B      Column C        Column D
Ref#          App name      Date            My own Comments
001           Excel         01/01/2015      tracking deployment on 1/1
002           Word          02/02/2015      tracking decom  on 2/2
003           PPT           03/03/2015      tracking upfrade on 3/3

"原始数据"片

Column A        Column B    Column C
Ref#            App name    Date
001             Excel       01/02/2015
002             Word        02/03/2015
003             PPT         03/04/2015

我需要一个宏来将行范围A1从原始数据复制到C1,而不会覆盖我的列D.还需要宏只粘贴在已存在引用的行上,这样我的注释才有效。例如,它将从原始数据中查看ref 001并在Tracker中查找它,如果它存在,则复制在同一行上。否则,使用该信息创建一个新行。日期会根据原始数据不时变化,我希望能够根据跟踪器列d的单元格跟踪这些变化以进行报告。

如果在Macro中可行,请告诉我,因为在我的电脑上安装第三方软件可能不是一种选择。

1 个答案:

答案 0 :(得分:0)

Dim dataSheet As Worksheet
Dim copyToSheet As Worksheet

Set dataSheet = Sheets("Raw Data")
Set copyToSheet = Sheets("Tracker")

'Unhide the sheet to dump data on
copyToSheet.Visible = True

dataSheet.Activate

sheet1LastRow = dataSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

dataSheet.Range("A1:C" & sheet1LastRow).Copy
copyToSheet.Range("A1").PasteSpecial xlPasteValues

这应该做你想要的。如果我把它们放错了,你可能不得不在顶部更改工作表名称:)

您也可以更改" .PasteSpecial xlPasteValues"到" .Paste"相反,如果你想做相当于击中 Ctrl + V 而不是仅粘贴值