Excel精英培训网

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

怎样从行中查询(巳搞好)

[复制链接]
发表于 2020-6-19 08:53 | 显示全部楼层 |阅读模式
本帖最后由 青青的河边草 于 2020-6-20 19:19 编辑

列查询学会了皮毛,但行查询实在是不知怎么搞,请老师们帮助,谢谢。
在表中,按键后,从倒数第二行起至C231,C列有数字的单元格都对应一个行,若c列某个单元格内数与所对应的行中某个单元格内数一样,那么相同数的单元格就显绿色。

发表于 2020-6-19 10:05 | 显示全部楼层
没看你的文件,我这会也没时间,只能大约说下思路:

1、行和列都是一样的,都是 for 循环。要处理一个方形区域,用双层 for 循环,是先行还是先列都可以,不影响;

2、识别区域的方法很多,常用的有 .currentregion,是一个四方形区域,要循环它,最简单的就是 for each
     dim rng  as range
     for each rng in [a1].currentregion       '系统会自动检索[a1]所在位置的数据区域边界

     next

     你也可以自定义循环,这就需要用到它的属性:
      .currentregion.row         首行,就是左上角坐标行的意思
      .currentregion.column    首列,就是左上角坐标列的意思
      .currentregion.rows.count         总行数
      .currentregion.columns.count    总列数
     上面四个参数就可以够成一个四方形区域坐标;




3、大多数情况下,你对自己的数据区域是有充分了解的,只是不知道末行或者末列在哪里,那么:
     [a100000].end(3).row  末行,这个不严谨,严谨写法是 cells(rows.count,1).end(3).row,版本不同,最大行数是不一样的,不展开说它;
     [a1].end(2).column      末列
     而首行和首列,通常是确定的,不需要识别;


4、如果没有特别需求,不建议在循环中插入行或列,因为插入行列会导致循环紊乱,只有个别例外,比如插入合计之类的,因为插入的数量不是随机的而是很确定的,就可以对循环参数做明确的修正,循环也就能正常执行。如果是随机插入,循环参数的修正就比较困难,你需要有高超的手法来修正;


5、为了避免插入行列,而且也是基于速度的原因,一般大家都会先用数组来存放数据,等全部数据计算完成,再一次性把数组写入单元格;
     你可以看到这样的写入代码:
          [a1].resize(ubound(arr),ubound(arr,2))=arr   '在a1单元格写数组arr,区域大小:行数为ubound(arr),列数 ubound(arr,2)
     二维数组正好与单元格区域吻合,而且写入非常简单;
     同样,要把单元格区域写入数组,也简单:
       arr=range("a1:h" & [a10000].end(3).row)       '写入 a1:h 区域,末行由参数[a10000].end(3).row确定

     如果插入行列,对单元格而言,是有实际的插入动作,后面的行列都需要相应后移,速度也慢;
     对数组插入行列,只是指移动数组的指针位置,速度不受影响,但后面的数据还是需要往后挪动,如果处理不当也很麻烦,因此也很少人会真正在数组中做插入动作,通常是用条件判断来即时处理要插入的数据,为了方便处理,可以用两个数组,一个是原始数据的数组,一个插入数据之后的数组,这样就把插入变成了对第二个数组做写入动作,也就省略了对后续数据的挪动过程;

6、我可能说了很多你不想要的东西,而你想要做的我可能一个也没说。我是想说:在一大堆数据中做随机插入和删除,换别人也是很难操作,要改变思路和方法;
回复

使用道具 举报

 楼主| 发表于 2020-6-19 11:15 | 显示全部楼层
本帖最后由 青青的河边草 于 2020-6-19 13:34 编辑

我都糊涂了,我刚学,还有很多都不会,边学边做。根据建议,内容已做修改。
回复

使用道具 举报

发表于 2020-6-19 14:41 | 显示全部楼层
青青的河边草 发表于 2020-6-19 11:15
我都糊涂了,我刚学,还有很多都不会,边学边做。根据建议,内容已做修改。

近期我没空,要忙自己的事,你等别人帮你搞;
回复

使用道具 举报

 楼主| 发表于 2020-6-19 14:56 | 显示全部楼层
hfwufanhf2006 发表于 2020-6-19 14:41
近期我没空,要忙自己的事,你等别人帮你搞;

好的,谢谢。
回复

使用道具 举报

 楼主| 发表于 2020-6-20 19:18 | 显示全部楼层
巳做出来了,谢谢大家。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 05:50 , Processed in 0.260342 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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