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