作者nomorelife (nomorelife)
看板Visual_Basic
标题[VBA ] 关於资料的比对、填入背景色、搬移
时间Mon Apr 12 22:42:13 2010
小弟是新手..
有找书自己研究过,也在网路上看过教学影片,但还是不会写OTZ
也问过身边学程设的人,不是不会就是对VBA不熟...
两个月来一直寻找解决办法但未果,不得已只好求教板上的高手们。
小弟有两个问题,详述如下:
问题1之简化资料
A
1 133.5
2 134
3 134
4 133.5
5 133.5
6 133.5
7 133
8 133.5
9 134
10 133.5
这份资料中,小弟希望能由A10格的数值开始向上比对。
若A9数值大於A10,储存格填入红色;若A9数值小於A10,储存格填入绿色;
若相等则不动作。
以这份资料而言,应呈现A10(无颜色)、A9(红色)、A8(绿色)、A7(绿色)、A6(红色)、
A5A4(无颜色)、A3(红色)、A2(无颜色)、A1(绿色)。
请问各位大大,该如何写才能达成呢?
问题2之简化资料
A B C D
1 09:07:25 09:07:03 444 555
2 09:07:20 09:06:24 333 666
3 09:07:11 09:06:13 222 777
4 09:07:03 09:06:00 111 888
5 09:07:03
6 09:07:03
7 09:06:25
8 09:06:14
9 09:06:12
10 09:06:00
这份资料中,AB列的数值为时间序列,储存格格式为自订中的hh:mm:ss,CD列则为通用。
小弟希望资料能自行比对并搬移,之後呈现如下之型态:
A B C D
1 09:07:25
2 09:07:20
3 09:07:11
4 09:07:03
5 09:07:03
6 09:07:03 09:07:03 444 555
7 09:06:25 09:06:24 333 666
8 09:06:14 09:06:13 222 777
9 09:06:12
10 09:06:00 09:06:00 111 888
小弟希望能将数值依时间排在同一栏;若时间恰好没有一样的,则自动搬移至下一秒的栏
位;若有数个相同的时间,则自动搬移至出现相同时间的第一个之栏位。
问题2复杂很多...也是最大的瓶颈...Orz
小弟真的是走投无路了...拜托各位高手大大们帮帮小弟..小弟感激不尽。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.43.157.109
1F:推 qsss:问题一, 不用写VBA, 使用格式>设定格式化的条件, 就可以做到 04/13 11:37
2F:推 qsss:设定两个条件, 第一个条件: =IF(A2<A1,TRUE,FALSE), 然後格式 04/13 11:42
3F:→ qsss:设定为自己要的, 条件二依此推类 04/13 11:42
4F:→ qsss:补充, 格式化条件只能设定三个, 超过三个还是需要写VBA 04/13 11:47
5F:→ qsss:问题二, "若时间恰好没有一样的,则自动搬移至下一秒", 是下 04/13 11:48
6F:→ qsss:秒还是上一秒? 因为看你的范例应该是上一秒, 又, 如果没有下 04/13 11:48
7F:→ qsss:一秒的资料呢? 04/13 11:48
8F:→ nomorelife:回qsss大,关於问题一,小弟试了您提供的方法,但.. 04/14 07:51
9F:→ nomorelife:残念OTZ..不过小弟想了想,应该还是要用到VBA,因为类 04/14 07:52
10F:→ nomorelife:似A栏这样的资料在小弟要处理的文件里有50个...囧 04/14 07:53
11F:→ nomorelife:关於问题二,因为是以A栏为基准,而A栏没有六分十三秒 04/14 07:56
12F:→ nomorelife:这列,所以B栏六分十三秒这列就要移到跟A栏六分十四秒 04/14 07:56
13F:→ nomorelife:同一列,所以是下一秒。若下一秒的话,也就是假设A栏没 04/14 07:58
14F:→ nomorelife: 更正:若没有下一秒 04/14 07:59
15F:→ nomorelife:有六分十四秒,那就得移到最接近的..可能是十六秒或是 04/14 08:02
16F:→ nomorelife:二十秒之类的(范例中没有,但实际资料中一定会有)..小 04/14 08:03
17F:→ nomorelife:弟可以提供原始文件..如果有大大需要的话 04/14 08:05