Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 创建一个宏,用于复制列中的特定数据,并将数据粘贴到不同工作簿中的不同列中_Vba_Excel - Fatal编程技术网

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

Vba 创建一个宏,用于复制列中的特定数据,并将数据粘贴到不同工作簿中的不同列中,vba,excel,Vba,Excel,我试图创建一个宏,该宏选择一个工作簿中的特定列,然后根据粘贴数据的列选择另一个工作簿中的特定列,因为两个工作簿中的列不同 我能够在工作簿1中选择;C列和工作簿2中的Z3列并粘贴值;但为此,我必须突出显示工作簿1:C列中的所有值,然后运行宏 我不知道如何创建一个宏,它可以在单击时自动执行此操作,也可以对多个列执行此操作。下面我已经包括了选择值时工作的代码 Range("C47:C581").Select Selection.Copy Windows("Workbook2.xls").Activat

我试图创建一个宏,该宏选择一个工作簿中的特定列,然后根据粘贴数据的列选择另一个工作簿中的特定列,因为两个工作簿中的列不同

我能够在工作簿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
我无法包含图像,因此我将在下面使用示例进行解释。 以下是工作簿1第1页的内容

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

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

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

这将从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

更改
选择。将
复制到
工作簿(“Workbook1.xlsm”)。工作表(“Sheet1”)。列(3)。复制
谢谢,我刚刚尝试了这个;它似乎选择了整个列,并且没有粘贴任何值。我还收到一条错误消息,说复制和粘贴区域不一样。你知道为什么吗?我是VB新手,所以我正在运行和录制宏,然后更改代码…是的,如果我选择相同数量的单元格,它会工作。我有另一个宏,可以找到范围,但范围可以改变,所以我试图找出它如何找到,选择和粘贴相同的值是,我的意思是范围,下面的代码工作,但这个范围可以改变;范围(“C47:C581”)。选择选择。复制窗口(“Sheet2.xls”)。激活范围(“Z3”)。选择。粘贴特殊粘贴:=xlPasteValues,操作:=xlNone,SkipBlanks:=False,转置:=False窗口(“Sheet1.xlsm”)。激活要在两个工作簿中复制的列是否共享同一标题?此外,宏很酷,但复制粘贴很容易。为什么是宏?