Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2981|回复: 4

[已解决]谁能帮我改下宏代码

[复制链接]
发表于 2019-5-13 22:38 | 显示全部楼层 |阅读模式
2学分
本帖最后由 1049671600 于 2022-10-12 11:42 编辑

才接触VBA,很多东西还不懂,恳求大神帮助
最佳答案
2019-5-13 22:38
本帖最后由 zjdh 于 2019-5-15 17:21 编辑

Sub 复制()
    Dim rn%, rns As Range
    ar = Range("A3:J" & [J1].End(4).Row)
    With Sheets("sheet2")
        rn = .Cells(Rows.Count, 12).End(3).Row + 1
        If rn < 12 Then rn = 12
        .Range("L" & rn).Resize(UBound(ar), UBound(ar, 2)) = ar

        For Each rns In .Range("L12", .[L12].End(4))    '序号
            If rns <> "" Then  rns(1, 0) = rns.Row - 11
       Next
    End With
End Sub
TIM截图20190513222502.png
TIM截图20190513222447.png

TEST.rar

18.33 KB, 下载次数: 10

最佳答案

查看完整内容

Sub 复制() Dim rn%, rns As Range ar = Range("A3:J" & [J1].End(4).Row) With Sheets("sheet2") rn = .Cells(Rows.Count, 12).End(3).Row + 1 If rn < 12 Then rn = 12 .Range("L" & rn).Resize(UBound(ar), UBound(ar, 2)) = ar For Each rns In .Range("L12", .[L12].End(4)) '序号 If rns "" Then rns(1, 0) = rns.Row - 11 Next End W ...
发表于 2019-5-13 22:38 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2019-5-15 17:21 编辑

Sub 复制()
    Dim rn%, rns As Range
    ar = Range("A3:J" & [J1].End(4).Row)
    With Sheets("sheet2")
        rn = .Cells(Rows.Count, 12).End(3).Row + 1
        If rn < 12 Then rn = 12
        .Range("L" & rn).Resize(UBound(ar), UBound(ar, 2)) = ar

        For Each rns In .Range("L12", .[L12].End(4))    '序号
            If rns <> "" Then  rns(1, 0) = rns.Row - 11
       Next
    End With
End Sub
回复

使用道具 举报

发表于 2019-5-14 08:29 | 显示全部楼层
你的文件打不开,请重新上传附件。
回复

使用道具 举报

 楼主| 发表于 2019-5-14 19:07 | 显示全部楼层
zjdh 发表于 2019-5-14 08:29
你的文件打不开,请重新上传附件。

感谢

123.zip

18.37 KB, 下载次数: 7

回复

使用道具 举报

发表于 2019-5-15 09:48 | 显示全部楼层
range(Cells(2, 2), Cells(2, 11)).Copy Sheet2.Cells(Sheet2.[b1000].end(3).row + 1, 2)
Sheet2.Cells(Sheet2.[a1000].end(3).row + 1, 1) = Sheet2.Cells(Sheet2.[a1000].end(3).row, 1) + 1
range(Cells(2, 2), Cells(2, 11)).Copy Sheet2.Cells(Sheet2.[l1000].end(3).row + 1, 12)

第一行是把sheet1的b2:k2区域数据复制到sheet2的b:k列的对应位置,原有的数据不变,复制的数据依次往后排。你模拟表sheet1的数据是a2:n2,这个宽度在sheet2中排不下,所以我截取了对应的宽度;
第二行就是在sheet2的a列顺序编号;
第三行代码是把sheet1的b2:k2区域数据复制到sheet2的K:U列,原有数据不变,复制的数据依次往下排
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 07:19 , Processed in 0.269712 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表