创建一个宏,用于复制列中的特定数据,并将数据粘贴到不同工作簿中的不同列中

时间:2015-09-17 16:48:24

标签: excel vba excel-vba

我正在尝试创建一个宏,它根据粘贴数据的列在一个工作簿中选择特定列,然后在另一个工作簿中,因为两个工作簿中的列都不同。

我可以在练习册1中选择;列C和工作簿2列Z3中粘贴值;但为此,我必须突出显示工作簿1:C列中的所有值,然后运行宏。

我不知道如何创建一个宏,它可以自动点击,也可以为多列创建。下面我已经包含了在选择值时有效的代码,

Range("C47:C581").Select
Selection.Copy
Windows("Workbook2.xls").Activate
Range("Z3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Windows("Workbook1.xlsm").Activate

我无法包含图片,因此我将在下面使用示例进行说明。 以下是Workbook 1 Sheet 1。

Column A    Column B    Column C    Column 
1             1           11          5555
2             2           22          4444
2             3           33          3333

我想创建一个宏来查找A列中的单元格数(不包括标题)并将它们粘贴到Workbook 2 C列中。我的描述中的上述代码仅适用于指定范围;我已经尝试了NumberOfCells,但我不确定为什么这不起作用

1 个答案:

答案 0 :(得分:2)

您的代码与您的解释不符,因此这是您想要的猜测。 首先备份您的文件。

这将从workbook1,sheet1(不包括标题)中获取A列,并从单元格C2开始将其复制到workbook2,sheet1,C列。

Sub SO()

Dim lastRow As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet

Set ws1 = Workbooks("workbook1.xlsm").WorkSheets("Sheet1")
Set ws2 = Workbooks("workbook2.xlsm").WorkSheets("Sheet1")

lastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row

ws1.Range(Cells(2, 1), Cells(lastRow, 1)).Copy

ws2.Range("C2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

End Sub