首页 > 其他分享 >vba复制一行到另一个工作表

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

时间:2024-04-25 11:44:55浏览次数:11  
标签:vba 打印 一行 wsDestination Range 复制 Sheets 数据

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

  

标签:vba,打印,一行,wsDestination,Range,复制,Sheets,数据
From: https://www.cnblogs.com/Sunshine-bing/p/18157272

相关文章

  • excel 用VBA循环打印数据
    SubPrintData()DimwsAsWorksheetSetws=ThisWorkbook.Sheets("Sheet1")'修改为你的工作表名DimrngAsRangeSetrng=ws.Range("A1:D10")'修改为你的数据区域DimcellAsRangeDimiAsIntegerAp......
  • postgresql中两张表的聚合函数合并到一列或一行,做除法,并保留两位小数
    --两张表的无关数据合并到一张表SELECTA.name,B.nameFROM(selecto.name,row_number()over(orderbyname)fromtb_orgaso)A FULLJOIN (selectr.name,row_number()over(orderbyr.name)fromtb_regionasr)BONA.row_number=B.row_number;这里是利用......
  • 实现对U盘文件的静默文件复制
    最近上课在网络情报搜集的时候,想实现一个功能,在u盘插入电脑时,电脑对u盘内的文件进行静默复制,用户没用察觉的时候将文件复制到指定位置。一、工具使用autohotkey工具,下载地址https://www.autohotkey.com/下载后安装到需要的位置。二、代码编写脚本:USB_Drive:="E:\";修改......
  • 解决方案 | 获取所有的打印输出的图纸尺寸的名称GetCanonicalMediaNames返回为空的原
     巨大的坑,该代码来自于acadauto_2014--AutoCAD2014ActiveXReferenceGuide.chm但是存在一个巨大的bug。'获取所有的打印输出的图纸尺寸的名称,但是事前必须设置【打印机对象】也就是Layouts("Model").ConfigName="DWFClassic.pc3"这样的代码,否则返回为空。也就是说,先设......
  • 新手学习记录丨Excel VBA(1)
    准备工作:开启ExcelVBA工作环境在MicrosoftExcel中,按键Alt+F11(或者Alt+Fn+F11)即可打开VBA编辑器。如下图所示,右键插入“模块”,即可开始在右侧的编辑器中编辑代码。实现最基本的任务:打印Helloworld在ExcelVBA中,字符串用双引号包围。我们可以使用MsgBox函数输出文......
  • MySQL 主从复制的执行流程
    MySQL主从复制的执行流程可以分为以下几个主要步骤:1.主服务器记录数据变更:当主服务器接收到写操作(如INSERT、UPDATE、DELETE)时,它将这些操作的变更信息记录到自己的二进制日志(BinaryLog)中。二进制日志包含了所有对数据库进行更改的记录。2.从服务器连接到主服务器:从服务器连......
  • Word中一行文字,一部分文字居左,一部分文字居右
    这里使用的是WPS,office操作也一样。最终效果图  第一步,先把标尺选中(位置:视图》标识) 第二步,创建2个位置的制表符(0代表居最左边,43.2代表居最右边,以当前纸张的规格为准),弹出制表符窗体有两种方式方式1:点击下图的红色粗行,只要是红色粗行平行线都可以点击,点击后会有一个......
  • MongoDB复制集
    MongoDB的复制集复制集及原理MongoDB复制集的主要意义在于实现服务高可用复制集的现实依赖于两个方面的功能:数据写入时将数据迅速复制到另一个独立节点上在接受写入的节点发生故障时自动选举出一个新的替代节点复制集在实现高可用的同时,还有以下作用:数据分发:将数据从......
  • docker镜像的复制
    有时候pull镜像很慢或者失败,需要从其他的机器传到服务器,就可以使用docker镜像的复制转贴,思路就是先把本地镜像打包,然后用ftp工具传到目标服务器,最后服务器解包还原打包dockersave-o~/alpine.3.16.taralpine:3.16还原dockerload-ialpine.3.16.tar打tag,这条命令就是......
  • 某些网站的内容无法复制甚至无法选择的问题
    对于无法复制的情况,一般是javascript控制的,在浏览器禁用即可。谷歌浏览器中,设置-隐私和安全-网站设置,拉到下方可以在‘内容’下看到javascript,选择不允许网站使用javascript最省事的是安装一个谷歌插件,一键禁用或启动javascript对于无法选择的情况,一般是通过CSS属性设置user......