Excel精英培训网

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

[已解决]求助:按条件选择区域,并复制粘贴到其他相应区域

[复制链接]
发表于 2012-11-3 17:21 | 显示全部楼层 |阅读模式
     近1个月内在论坛内发表求助贴解决了数据整理的多数问题,也学会了自己应用初步编程,并仍在不断学习中。现在又遇见的新问题,请各位高手再施以援手,先谢谢了!!!

   需求背景:有两张表“原始数据区”和“接收数据区”,两个表格的构架相同,但求平均、求和的公式有所不同、各列的格式也有所不同,但数据块的行、列数均相同,需要将“原始数据区”中的3个黄色数据块,复制到“接收数据区”中相应的位置。我用的笨办法是建立宏文件,勉强可以达到效果,但智能判断性不够,想请请各位高手帮忙。

      需要达到的效果:1、将表“原始数据区”中的3个黄色块的内容依次复制、粘贴到本表格中;2、表中是每10行一求平均,实际操作中多会出现每12行、每15等一求平均的情况,需要能判断;3、能自动判断“原始数据区”的最后一行,即自动判断循环的终止区。


请看附件:

20121103 表格-田间数据整理-要求与结果.rar (103.15 KB, 下载次数: 9)
发表于 2012-11-3 17:49 | 显示全部楼层
本帖最后由 zjdh 于 2012-11-3 17:52 编辑

1. 你是希望用vba吧!
2. 你说“实际操作中多会出现每12行、每15等一求平均的情况”,那么“原始数据区”与“接收数据区”的对应行相同吗?
3. K列的公式没有不同啊
回复

使用道具 举报

发表于 2012-11-3 18:16 | 显示全部楼层
数据整理.rar (117.33 KB, 下载次数: 4)
回复

使用道具 举报

 楼主| 发表于 2012-11-3 18:50 | 显示全部楼层
zjdh 发表于 2012-11-3 17:49
1. 你是希望用vba吧!
2. 你说“实际操作中多会出现每12行、每15等一求平均的情况”,那么“原始数据区”与 ...

接收数据区的行数是预先做好的,如果原始数据区出现每12行、15行等一求平均时,接收区就会少行了,需要在平均值一行之上插入行;
K列的公式是略有不同的,我用复制粘贴公式调成一样的了。

     非常感谢高手援助!!!
回复

使用道具 举报

 楼主| 发表于 2012-11-3 18:58 | 显示全部楼层
zjdh 发表于 2012-11-3 18:16

     高手就是高手呀,简单的几句程序就解决问题了,我做的宏文件一大堆,而且不能自动判断。
想消化程序,提高理解力,还需要楼主能对公式做较为详细的说明。
回复

使用道具 举报

发表于 2012-11-3 20:32 | 显示全部楼层
建议你到http://www.excelpx.com/forum.php?mod=viewthread&tid=186721
下载一个解释器。
回复

使用道具 举报

发表于 2012-11-3 20:39 | 显示全部楼层
shzzhy 发表于 2012-11-3 18:50
接收数据区的行数是预先做好的,如果原始数据区出现每12行、15行等一求平均时,接收区就会少行了,需要在 ...

若是在平均值一行之上插入行,则你的公式将不包括插入的这一行数据!
必须在平均值之上2行间插入!
回复

使用道具 举报

发表于 2012-11-3 21:24 | 显示全部楼层    本楼为最佳答案   
其实插入行并不难,我已修改了宏,可以达到此要求。
数据整理2.rar (120.96 KB, 下载次数: 12)
回复

使用道具 举报

 楼主| 发表于 2012-11-4 00:03 | 显示全部楼层
非常感谢,先下载下来慢慢消化。
回复

使用道具 举报

 楼主| 发表于 2012-11-4 09:19 | 显示全部楼层
zjdh 发表于 2012-11-3 20:32
建议你到http://www.excelpx.com/forum.php?mod=viewthread&tid=186721
下载一个解释器。

你好,下载了这个解释器,但上面的解释还是觉得不太明白,很不明白的几句还请能再解释下好吗?

SetC = .Range("E1:E500").Find("平均",LookIn:=xlValues)         '设定C=.Range("E1:E500").Find("平均",LookIn:=数值)
If Not C Is NothingThen                                                                         '如果   C 空值 则执行
    firstAddress = C.Address                                                                      'firstAddress=C.Address
   Do                                                                                             '执行循环操作
   W2 = C.Row - 1                                                                                'W2=C.Row-1
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 10:38 , Processed in 0.414355 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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