Excel 将整行(先复制A,然后复制B,然后复制C)复制到其特定单元格中的另一张图纸

Excel 将整行(先复制A,然后复制B,然后复制C)复制到其特定单元格中的另一张图纸,excel,vba,Excel,Vba,我有一个名称列表,垂直排列在表1上,由500多行组成,如下所示 工程量清单编号(002,003)姓名(约翰,詹姆斯)金额(455,55) 鉴于,我在表2上有一个账单发票形状的格式,需要替换表1上的数据 下面的vba代码适用于一个特定的行(A3:C3),但我面临的问题是sheet1上的列表有500多行 因此,请帮助我选择一个替代方案,我可以用鼠标单击一个随机单元格(A3),vba代码将整行(A3:C3)从表1复制到表2的相应位置 Sub-Macro13() '宏13宏 范围(“A3”)。选择 选择

我有一个名称列表,垂直排列在表1上,由500多行组成,如下所示 工程量清单编号(002,003)姓名(约翰,詹姆斯)金额(455,55)

鉴于,我在表2上有一个账单发票形状的格式,需要替换表1上的数据

下面的vba代码适用于一个特定的行(A3:C3),但我面临的问题是sheet1上的列表有500多行

因此,请帮助我选择一个替代方案,我可以用鼠标单击一个随机单元格(A3),vba代码将整行(A3:C3)从表1复制到表2的相应位置

Sub-Macro13()
'宏13宏
范围(“A3”)。选择
选择,复制
图纸(“图纸3”)。选择
范围(“C4”)。选择
活动表。粘贴
图纸(“图纸2”)。选择
范围(“B3”)。选择
Application.CutCopyMode=False
选择,复制
图纸(“图纸3”)。选择
ActiveCell.Offset(0,4).范围(“A1”).选择
活动表。粘贴
图纸(“图纸2”)。选择
范围(“C3”)。选择
Application.CutCopyMode=False
选择,复制
图纸(“图纸3”)。选择
ActiveCell.Offset(17,3).范围(“A1”).选择
活动表。粘贴
范围(“c4”)。选择
端接头

您可以参考以下代码并根据需要进行修改

Sub Macro13()

Sheets("Sheet2").Range("A3").Copy
Sheets("Sheet3").Range("C4").Paste

Sheets("Sheet2").Range("B3").Copy
Sheets("Sheet3").Range("A5").Paste

Sheets("Sheet2").Range("C3").Copy
Sheets("Sheet3").Range("D18").Paste

End Sub

请测试下一个代码:

Sub CopyCellsSpecificPlaces()
 Dim sh2 As Worksheet, sh3 As Worksheet, aC As Range
 
 Set sh2 = Sheets("Sheet2")
 Set sh3 = Sheets("Sheet3")
 Set aC = ActiveCell
 
 If (Not aC.Parent Is sh2) Or (aC.Column <> 1) Then
    MsgBox "You must run the code after selecting a cell in A:A column of ""Sheet1""...": Exit Sub
 End If
 sh3.cells(4, "C").Value = aC.Value
 sh3.cells(4, "G").Value = aC.Offset(0, 1).Value
 sh3.cells(21, "J").Value = aC.Offset(0, 2).Value
End Sub
子CopyCellsSpecificPlaces()
尺寸sh2作为工作表,sh3作为工作表,aC作为范围
设置sh2=板材(“板材2”)
设置sh3=板材(“板材3”)
设置aC=ActiveCell
如果(非aC.父项为sh2)或(aC.第1列),则
MsgBox“您必须在选择“Sheet1”…“:Exit Sub的:a列中的单元格后运行代码
如果结束
sh3.单元(4,“C”).值=交流值
sh3.单元(4,“G”).值=交流偏移量(0,1).值
sh3.单元(21,“J”).值=交流偏移量(0,2).值
端接头

只有在您准确地解释了您需要完成的工作时,您才能获得一些帮助。。。基于您的代码需要修改的内容。它在选择、复制和粘贴方面看起来很原始,但为了被其他更高效的东西所取代,您应该解释您的代码应该做什么,以便处理“海量数据”…我已经编辑了我的问题。。我希望如果这是准确的解释,并希望你找到一个解决方案,我尽快。谢谢你的期待一点清楚,但我仍然不确定我是否理解你的需要。。。首先,构造
ActiveCell.Offset(0,4).Range(“A1”).Select的方法很奇怪。您不打算在位于右边四列的单元格中复制上一个选项吗?我的意思是,你不打算在“G3”范围内引用吗?与
ActiveCell.Offset(17,3).Range(“A1”)相同。选择
<代码>范围(“A1”)
不起任何作用。。。您不想选择范围“J21”吗?我问这个问题,因为我会尽量避免选择、复制和粘贴,这只会消耗Excel资源……所以,我们可以说,对于第10行(在“Sheet2”中),“A10”值应该复制到“Sheet3”的“C11”中,然后“B10”应该复制到“G11”中,“C10”应该复制到“J28”中“.这种理解正确吗?我想强调的是,你应该准确地描述将要做的事情。。。“各自的地方”是一个无用的概念。是的,这就是概念。。。你能帮我吗?表3中的单元格应该是常数。“C4”、“G4”和“J21”。@Malcolm Dias:“是的,这就是概念”是什么意思?我将调整/简化代码,使其始终返回到您提到的单元格中(现在…。。@Malcolm Dias:调整代码。它现在能满足你的需要吗?太好了!!非常感谢。