vba复制一行到另一个工作表

Sub CopyRowToAnotherSheet()
    Dim wsSource As Worksheet
    Dim wsDestination As Worksheet
    
    ' 设置源和目标工作表
    Set wsSource = ActiveSheet
    Set wsDestination = ThisWorkbook.Worksheets("Sheet2")
    
    ' 假设我们要复制的是第一行
    ' 复制源工作表的第一行
    wsSource.Rows(1).Copy
    
    ' 粘贴到目标工作表的第一行
    wsDestination.Rows(1).PasteSpecial Paste:=xlPasteValues ' 仅复制值
    'wsDestination.Rows(1).PasteSpecial Paste:=xlPasteFormats ' 复制格式
    'wsDestination.Rows(1).PasteSpecial Paste:=xlPasteColumnWidths ' 复制列宽
    
    ' 取消选中复制的内容
    Application.CutCopyMode = False
End Sub

  自己工程代码

Sub 复制打印数据数组()
Dim i As Integer, j As Integer
Dim a()
Dim b()
Worksheets("追踪单打印 -A6").Activate '先激活需要操作的表
a = Range("K2:s" & Range("k2").End(xlDown).Row) '将数据存入数组中 '将数据存入数组中

Worksheets("数据表").Activate  '先激活需要操作的表
b = Range("A3:AD" & Range("b3").End(xlDown).Row) '将数据存入数组中

  Dim wsSource As Worksheet
    Dim wsDestination As Worksheet
    
    ' 设置源和目标工作表
    Set wsSource = ThisWorkbook.Worksheets("数据表")
    Set wsDestination = ThisWorkbook.Worksheets("打印数据")



For i = 1 To UBound(a)

   For j = 1 To UBound(b)
    
          If a(i, 1) = b(j, 1) Then
              
               'Sheets("分析表").Range("Q" & (i + 1)) = b(j, 3)
              ' Sheets("打印数据").Range("A" & (i + 1)) = b(j, 3)
               ' 复制源工作表的第一行
   'wsSource.Rows(j).Copy
             
             
             
              ' 粘贴到目标工作表的第一行
   ' wsDestination.Rows(i).PasteSpecial Paste:=xlPasteValues ' 仅复制值
    'wsDestination.Rows(1).PasteSpecial Paste:=xlPasteFormats ' 复制格式
    'wsDestination.Rows(1).PasteSpecial Paste:=xlPasteColumnWidths ' 复制列宽
             
             Sheets("打印数据").Range("A" & (i + 1)) = b(j, 1)
             Sheets("打印数据").Range("B" & (i + 1)) = b(j, 2)
             Sheets("打印数据").Range("C" & (i + 1)) = b(j, 3)
             Sheets("打印数据").Range("D" & (i + 1)) = b(j, 4)
             Sheets("打印数据").Range("E" & (i + 1)) = b(j, 5)
             Sheets("打印数据").Range("F" & (i + 1)) = b(j, 6)
             Sheets("打印数据").Range("G" & (i + 1)) = b(j, 7)
             Sheets("打印数据").Range("H" & (i + 1)) = b(j, 8)
             Sheets("打印数据").Range("I" & (i + 1)) = b(j, 9)
             Sheets("打印数据").Range("J" & (i + 1)) = b(j, 10)
             Sheets("打印数据").Range("K" & (i + 1)) = b(j, 11)
             Sheets("打印数据").Range("L" & (i + 1)) = b(j, 12)
             Sheets("打印数据").Range("M" & (i + 1)) = b(j, 13)
             Sheets("打印数据").Range("N" & (i + 1)) = b(j, 14)
             Sheets("打印数据").Range("O" & (i + 1)) = b(j, 15)
             Sheets("打印数据").Range("P" & (i + 1)) = b(j, 16)
             Sheets("打印数据").Range("Q" & (i + 1)) = b(j, 17)
             Sheets("打印数据").Range("R" & (i + 1)) = b(j, 18)
             Sheets("打印数据").Range("S" & (i + 1)) = b(j, 19)
             Sheets("打印数据").Range("T" & (i + 1)) = b(j, 20)
             Sheets("打印数据").Range("U" & (i + 1)) = b(j, 21)
             Sheets("打印数据").Range("V" & (i + 1)) = b(j, 22)
             Sheets("打印数据").Range("W" & (i + 1)) = b(j, 23)
             Sheets("打印数据").Range("X" & (i + 1)) = b(j, 24)
             Sheets("打印数据").Range("Y" & (i + 1)) = b(j, 25)
             Sheets("打印数据").Range("Z" & (i + 1)) = b(j, 26)
             Sheets("打印数据").Range("AA" & (i + 1)) = b(j, 27)
             Sheets("打印数据").Range("AB" & (i + 1)) = b(j, 28)
             Sheets("打印数据").Range("AC" & (i + 1)) = b(j, 29)
             Sheets("打印数据").Range("AD" & (i + 1)) = b(j, 30)
             
               
               Exit For '退出for
        End If
   Next
    
Next





'For i = 1 To UBound(a)

   ' For j = 1 To UBound(b)
    
          'If a(i, 1) = b(j, 2) Then
              
               'Sheets("分析表").Range("Q" & (i + 1)) = b(j, 3)
               
               ' Exit For '退出for
        'End If
   'Next
    
'Next

End Sub

  

posted @ 2024-04-25 11:35  路飞园  阅读(1045)  评论(0编辑  收藏  举报