Excel精英培训网

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

[已解决]根据指定列的单元格文字,复制另一个工作表的列

[复制链接]
发表于 2016-10-12 10:26 | 显示全部楼层 |阅读模式
序号姓名总成绩英语数学语文
1
WW
256
105
2
EE
320
112
3
GG
318
102
4
HH
320
120
5
JJ
340
100
6
KK
298
108
7
LL
301
117
8
OO
306
104
9
PP
309
102
10
YY
278
99
当“目标”工作表的B2="姓名"时把“数据源”B列的数据复制到“目标”工作表的B2以下,当“目标”工作表的B2="总成绩"时把“数据源”C列的数据复制到“目标”工作表的B2以下,其他单元格一样

最佳答案
2016-10-12 14:52
HNZZHGY 发表于 2016-10-12 14:13
表头有其他文字时如何修改
  1. Sub Greenhand()
  2. Dim str$, i%
  3. For i = 2 To Sheets("目标").Cells(2, "iv").End(xlToLeft).Column
  4. str = Sheets("目标").Cells(2, i)
  5. Select Case str
  6.     Case "姓名"
  7.         Sheets("数据源").Range("b1:b65534").Copy Sheets("目标").Cells(3, i)
  8.     Case "总成绩"
  9.         Sheets("数据源").Range("c1:c65534").Copy Sheets("目标").Cells(3, i)
  10.     Case "英语"
  11.         Sheets("数据源").Range("d1:d65534").Copy Sheets("目标").Cells(3, i)
  12.     Case "数学"
  13.         Sheets("数据源").Range("e1:e65534").Copy Sheets("目标").Cells(3, i)
  14.     Case "语文"
  15.         Sheets("数据源").Range("f1:f65534").Copy Sheets("目标").Cells(3, i)
  16. End Select
  17. Next
  18. End Sub
复制代码
不知道你是什么意思

根据指定列的单元格文字,复制另一个工作表的列.rar

3.97 KB, 下载次数: 4

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-10-12 11:01 | 显示全部楼层
  1. Sub Greenhand()
  2. Dim str$
  3. str = Sheets("目标").Range("b2")
  4. Select Case str
  5.     Case "姓名"
  6.         Sheets("数据源").Range("b2:b65536").Copy Sheets("目标").Range("b3")
  7.     Case "总成绩"
  8.         Sheets("数据源").Range("c2:c65536").Copy Sheets("目标").Range("b3")
  9.     Case "英语"
  10.         Sheets("数据源").Range("d2:d65536").Copy Sheets("目标").Range("b3")
  11.     Case "数学"
  12.         Sheets("数据源").Range("e2:e65536").Copy Sheets("目标").Range("b3")
  13.     Case "语文"
  14.         Sheets("数据源").Range("f2:f65536").Copy Sheets("目标").Range("b3")
  15. End Select
  16. End Sub
复制代码
回复

使用道具 举报

发表于 2016-10-12 11:03 | 显示全部楼层
参考附件,是这个意思吗?再有其他科目按照这个规律加代码就行了

根据指定列的单元格文字,复制另一个工作表的列.zip

15.11 KB, 下载次数: 5

回复

使用道具 举报

 楼主| 发表于 2016-10-12 11:21 | 显示全部楼层
谢谢望帝春心,如果目标工作表定几列,如B、C、E、D上指定单元格文字后,再复制源数据的列,如何修改!
回复

使用道具 举报

 楼主| 发表于 2016-10-12 11:31 | 显示全部楼层
望帝春心 发表于 2016-10-12 11:03
参考附件,是这个意思吗?再有其他科目按照这个规律加代码就行了

谢谢望帝春心,如果目标工作表定几列,如B、C、E、D上指定单元格文字后,再复制源数据的列,如何修改!

回复

使用道具 举报

发表于 2016-10-12 11:57 | 显示全部楼层

把附件更新一下吧,把你想到的效果模拟出来看一下。
回复

使用道具 举报

 楼主| 发表于 2016-10-12 13:48 | 显示全部楼层
本帖最后由 HNZZHGY 于 2016-10-12 14:15 编辑

请再帮看一下!

根据指定列的单元格文字,复制另一个工作表的列1.rar

9.27 KB, 下载次数: 0

回复

使用道具 举报

 楼主| 发表于 2016-10-12 14:13 | 显示全部楼层
本帖最后由 HNZZHGY 于 2016-10-12 14:14 编辑

表头有其他文字时如何修改

根据指定列的单元格文字,复制另一个工作表的列1.rar

9.27 KB, 下载次数: 2

回复

使用道具 举报

发表于 2016-10-12 14:52 | 显示全部楼层    本楼为最佳答案   
HNZZHGY 发表于 2016-10-12 14:13
表头有其他文字时如何修改
  1. Sub Greenhand()
  2. Dim str$, i%
  3. For i = 2 To Sheets("目标").Cells(2, "iv").End(xlToLeft).Column
  4. str = Sheets("目标").Cells(2, i)
  5. Select Case str
  6.     Case "姓名"
  7.         Sheets("数据源").Range("b1:b65534").Copy Sheets("目标").Cells(3, i)
  8.     Case "总成绩"
  9.         Sheets("数据源").Range("c1:c65534").Copy Sheets("目标").Cells(3, i)
  10.     Case "英语"
  11.         Sheets("数据源").Range("d1:d65534").Copy Sheets("目标").Cells(3, i)
  12.     Case "数学"
  13.         Sheets("数据源").Range("e1:e65534").Copy Sheets("目标").Cells(3, i)
  14.     Case "语文"
  15.         Sheets("数据源").Range("f1:f65534").Copy Sheets("目标").Cells(3, i)
  16. End Select
  17. Next
  18. End Sub
复制代码
不知道你是什么意思
回复

使用道具 举报

 楼主| 发表于 2016-10-12 21:40 | 显示全部楼层
再问一下望帝春心,如果目标工作表的的姓名、语文、总成绩、英语和数学在不同的列,比如说姓名不一定在B列,可能在C、D、F等列时如何修改?谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 10:01 , Processed in 0.614281 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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