Excel精英培训网

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

[已解决]同项不同组数据复制

[复制链接]
发表于 2011-10-30 13:36 | 显示全部楼层 |阅读模式
本帖最后由 cyj153 于 2011-10-30 13:37 编辑

同项不同组数据复制.rar (13.12 KB, 下载次数: 14)
发表于 2011-10-30 13:54 | 显示全部楼层    本楼为最佳答案   
  1. Sub 按钮2_Click()
  2.     Dim A, B(1 To 65555, 1 To 4), x%, y%, i&, s&
  3.    
  4.     With Sheets(3)
  5.         A = .Range("a2:h" & .Range("a2").End(xlDown).Row)
  6.     End With
  7.     With Sheets(1)
  8.         x = .Range("m2")
  9.         y = .Range("o2")
  10.     End With
  11.    
  12.     For i = 1 To UBound(A)
  13.         If A(i, 1) = x And A(i, 4) = y Then
  14.             s = s + 1
  15.             B(s, 1) = s
  16.             B(s, 2) = A(i, 6)
  17.             B(s, 3) = A(i, 7)
  18.             B(s, 4) = A(i, 8)
  19.         End If
  20.     Next i
  21.     With Sheets(2)
  22.         .Range("a4:e65536").Clear
  23.         If s > 0 Then
  24.             Sheets(2).Range("a4").Resize(s, 4) = B
  25.         End If
  26.     End With
  27. End Sub
复制代码
同项不同组数据复制2.rar (13.17 KB, 下载次数: 13)
回复

使用道具 举报

 楼主| 发表于 2011-10-30 18:09 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2011-10-30 14:37 | 显示全部楼层
回复 爱疯 的帖子

是这样,谢爱疯师。两个问题都解决了。谢谢!
回复

使用道具 举报

 楼主| 发表于 2011-10-30 16:46 | 显示全部楼层
本帖最后由 cyj153 于 2011-10-30 16:47 编辑

回复 爱疯 的帖子

爱疯师,您 好!请教个问题,我把表3的P列也复制到表2的G列,修改代码后为什么会出现下标越界,错在哪里,请指教!谢谢。

  • Sub 按钮2_Click()
  •     Dim A, B(1 To 65555, 1 To 16), x%, y%, i&, s&
  •     With Sheets(3)
  •         A = .Range("a2:h" & .Range("a2").End(xlDown).Row)
  •     End With
  •     With Sheets(1)
  •         x = .Range("m2")
  •         y = .Range("o2")
  •     End With
  •     For i = 1 To UBound(A)
  •         If A(i, 1) = x And A(i, 4) = y Then
  •             s = s + 1
  •             B(s, 1) = s
  •             B(s, 2) = A(i, 6)
  •             B(s, 3) = A(i, 7)
  •             B(s, 4) = A(i, 8)
  •             B(s, 7)  = A(i,16)
  •         End If
  •     Next i
  •     With Sheets(2)
  •         .Range("a4:e65536").Clear
  •         If s > 0 Then
  •             Sheets(2).Range("a4").Resize(s, 7) = B
  •         End If
  •     End With
  • End Sub
回复

使用道具 举报

发表于 2011-10-30 17:20 | 显示全部楼层
Sub 按钮2_Click()
    Dim A, B(1 To 65555, 1 To 7), x%, y%, i&, s&
    With Sheets(3)
        A = .Range("a2:p" & .Range("a2").End(xlDown).Row)
    End With
    With Sheets(1)
        x = .Range("m2")
        y = .Range("o2")
    End With
    For i = 1 To UBound(A)
        If A(i, 1) = x And A(i, 4) = y Then
            s = s + 1
            B(s, 1) = s
            B(s, 2) = A(i, 6)
            B(s, 3) = A(i, 7)
            B(s, 4) = A(i, 8)
            B(s, 7) = A(i, 16)
        End If
    Next i
    With Sheets(2)
        .Range("a4:e65536").Clear
        If s > 0 Then
            Sheets(2).Range("a4").Resize(s, 7) = B
        End If
    End With
End Sub

修改了两处。
因为看不到实际效果,所以不知这么改行吗
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 06:37 , Processed in 0.502090 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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