我正在尝试创建一个宏,它根据粘贴数据的列在一个工作簿中选择特定列,然后在另一个工作簿中,因为两个工作簿中的列都不同。
我可以在练习册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,但我不确定为什么这不起作用
答案 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