作者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
推 qsss:問題一, 不用寫VBA, 使用格式>設定格式化的條件, 就可以做到 04/13 11:37
推 qsss:設定兩個條件, 第一個條件: =IF(A2<A1,TRUE,FALSE), 然後格式 04/13 11:42
→ qsss:設定為自己要的, 條件二依此推類 04/13 11:42
→ qsss:補充, 格式化條件只能設定三個, 超過三個還是需要寫VBA 04/13 11:47
→ qsss:問題二, "若時間恰好沒有一樣的,則自動搬移至下一秒", 是下 04/13 11:48
→ qsss:秒還是上一秒? 因為看你的範例應該是上一秒, 又, 如果沒有下 04/13 11:48
→ qsss:一秒的資料呢? 04/13 11:48
→ nomorelife:回qsss大,關於問題一,小弟試了您提供的方法,但.. 04/14 07:51
→ nomorelife:殘念OTZ..不過小弟想了想,應該還是要用到VBA,因為類 04/14 07:52
→ nomorelife:似A欄這樣的資料在小弟要處理的文件裡有50個...囧 04/14 07:53
→ nomorelife:關於問題二,因為是以A欄為基準,而A欄沒有六分十三秒 04/14 07:56
→ nomorelife:這列,所以B欄六分十三秒這列就要移到跟A欄六分十四秒 04/14 07:56
→ nomorelife:同一列,所以是下一秒。若下一秒的話,也就是假設A欄沒 04/14 07:58
→ nomorelife: 更正:若沒有下一秒 04/14 07:59
→ nomorelife:有六分十四秒,那就得移到最接近的..可能是十六秒或是 04/14 08:02
→ nomorelife:二十秒之類的(範例中沒有,但實際資料中一定會有)..小 04/14 08:03
→ nomorelife:弟可以提供原始文件..如果有大大需要的話 04/14 08:05