Excel精英培训网

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

[已解决]可以再帮忙修改下吗?!如何把一个表的某几行复制到另一个表?

[复制链接]
发表于 2013-12-26 20:54 | 显示全部楼层 |阅读模式
本帖最后由 呠呠车 于 2013-12-28 19:16 编辑

例如有“表1”和“表2”

如何把“表1”里,把每隔15行的6行行次数据,按选择性粘贴(数值),复制到“表2“里?

如入仓单的第9行~第14行、第24行~第29行、第39行~第44行 这样复制到新表的第3行~第8行、第9行~第14行。。

这是我录制的宏的代码,各位大师可以帮我修改下吗?修改成循环语句,适用整个表。{:091:}

Sub Macro2()
'
' Macro2 Macro
' 宏由 微软用户 录制,时间: 2013-12-26
'
' 快捷键: Ctrl+x
'
    Sheets("成品入仓单").Select
    Rows("9:9").Select
    Selection.Copy
    Sheets("Sheet2").Select
    Rows("3:3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("成品入仓单").Select
    Rows("24:24").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet2").Select
    Rows("4:4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("成品入仓单").Select
    ActiveWindow.SmallScroll Down:=24
    Rows("39:39").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet2").Select
    Rows("5:5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("成品入仓单").Select
    ActiveWindow.SmallScroll Down:=12
    Rows("54:54").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet2").Select
    Rows("6:6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("成品入仓单").Select
    ActiveWindow.SmallScroll Down:=-3
End Sub


file:///C:/Documents%20and%20Settings/Administrator/桌面/1.jpg

file:///C:/Documents%20and%20Settings/Administrator/桌面/2.jpg


最佳答案
2013-12-27 12:03
呠呠车 发表于 2013-12-27 11:36
上传了!

经过测试,没有问题。
再次改了一下,复制过去的空行不再保留
  1. Sub t()
  2.     Dim i%,  endRow%
  3.     Dim sh As Worksheet
  4.     Set sh = Sheets("sheet2")
  5.     endRow = Sheets("成品入仓单").Cells(Rows.Count, 1).End(3).Row
  6.     For i = 9 To endRow Step 15
  7.         Sheets("成品入仓单").Rows(i “&:”& i+5).Copy
  8.         sh.Cells(rows.count, 1).end(3).offset(1).PasteSpecial Paste:=xlPasteValues
  9.     Next
  10.     set sh=nothing
  11. End Sub
复制代码

表1

表1
2.jpg

仓库表.rar

10.98 KB, 下载次数: 6

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-12-26 22:01 | 显示全部楼层
  1.     Dim I As Long
  2.     Application.ScreenUpdating = False
  3.     With Worksheets("成品入库单")
  4.         For I = 9 To .Cells(Rows.Count, 1).End(xlUp).Row Step 15
  5.             .Rows(I).Copy Worksheets("sheet3").Cells(Rows.Count, 1).End(xlUp).Offset(1)
  6.         Next
  7.     End With
  8.     Application.ScreenUpdating = True
复制代码
回复

使用道具 举报

发表于 2013-12-26 22:08 | 显示全部楼层
录入宏不能循环
  1. Sub t()
  2.     Dim i%, k%, endRow%
  3.     Dim sh As Worksheet
  4.     Set sh = Sheets("sheet2")
  5.     endRow = Sheets("成品入仓单").Cells(Rows.Count, 1).End(3).Row
  6.     For i = 9 To endRow Step 15
  7.         Sheets("成品入仓单").Rows(i).Copy
  8.         sh.Cells(3 + k, 1).PasteSpecial Paste:=xlPasteValues
  9.         k = k + 1
  10.     Next
  11. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-12-27 09:04 | 显示全部楼层
hwc2ycy 发表于 2013-12-26 22:01

谢谢!但显示需要调试。我改了表名后,还是生成不了。还是感谢你的回复!
回复

使用道具 举报

 楼主| 发表于 2013-12-27 09:07 | 显示全部楼层
fffox 发表于 2013-12-26 22:08
录入宏不能循环

非常感谢!!!可以用了 {:27:}  学习了!


回复

使用道具 举报

 楼主| 发表于 2013-12-27 10:07 | 显示全部楼层
fffox 发表于 2013-12-26 22:08
录入宏不能循环

{:091:}可以再帮我修改一次吗? 刚才发现是要设置成:入仓单的第9行~第14行、第24行~第29行、第39行~第44行 这样复制到新表去。。而不是只有第9行复制过去。。
回复

使用道具 举报

发表于 2013-12-27 10:55 | 显示全部楼层
        Sheets("成品入仓单").Rows(i &“:”& i+5).Copy
        sh.Cells(3 + k, 1).PasteSpecial Paste:=xlPasteValues
        k = k + 6

红色部分改一下就好了
回复

使用道具 举报

 楼主| 发表于 2013-12-27 11:01 | 显示全部楼层
本帖最后由 呠呠车 于 2013-12-27 11:03 编辑
fffox 发表于 2013-12-27 10:55
Sheets("成品入仓单").Rows(i &“:”& i+5).Copy
        sh.Cells(3 + k, 1).PasteSpecial Past ...


黄色那行 显示要调试。。

Dim i%, k%, endRow%
    Dim sh As Worksheet
    Set sh = Sheets("成品入仓账本")
    endRow = Sheets("成品入仓单").Cells(Rows.Count, 1).End(3).Row
    For I = 9 To endRow Step 15
       Sheets("成品入仓单").Rows(I & ":" & I + 5).Copy      
        sh.Cells(3 + k, 1).PasteSpecial Paste:=xlPasteValues
        k = k + 6
    Next


回复

使用道具 举报

发表于 2013-12-27 11:06 | 显示全部楼层
i和&之间要有一个空格
回复

使用道具 举报

 楼主| 发表于 2013-12-27 11:11 | 显示全部楼层
fffox 发表于 2013-12-27 11:06
i和&之间要有一个空格


有的。但还是显示要调试
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 13:16 , Processed in 0.251078 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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