標題:
[發問]
如何比對時間……
[打印本頁]
作者:
play9091
時間:
2012-3-21 10:35
標題:
如何比對時間……
本帖最後由 play9091 於 2012-3-21 11:28 編輯
我想要用"進階篩選"對一堆資料做篩選。
但現在遇到一個問題,我想要對日期做篩選。但是不知道怎麼樣子去和日期做比對……
例如:我想要篩選大於2012/03/14,但是實際篩選出來2012/03/14還是在篩選後的列表裡面!
我的寫法如下:
D = Date - 7
Range("S2") = "=D2>" & D
Range("A1:Q65536").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("S1:T2"), Unique:=False
複製代碼
範例如附檔!煩請先進們指教一下!
作者:
hugh0620
時間:
2012-3-21 13:31
本帖最後由 hugh0620 於 2012-3-21 13:38 編輯
回復
1#
play9091
將P欄位的公式改成=B2>DATE(2012,3,14) OR =B2>DATEVALUE("2012/3/14")就會是FALSE
=B2>2012/3/14 =>這個的意思是 B2=> (2012除以3除以14)
要多了解一下公式的涵義唷~
作者:
play9091
時間:
2012-3-21 14:48
回復
2#
hugh0620
用VBA寫出樓上先進寫的公式好難喔!怎麼寫都錯啊!
Range("U2") = "=D2>datevalue(" & D & ")"""
複製代碼
跑VBA的時候就錯了……暈啊!
作者:
Hsieh
時間:
2012-3-21 16:22
回復
3#
play9091
Range("U2") = "=D2>datevalue(" & D & ")"
作者:
play9091
時間:
2012-3-21 16:34
回復
4#
Hsieh
Range("U2") = "=D2>datevalue(" & D & ")"
↓
=D2>datevalue(2012/3/14)
但是公式要求成下面這個樣子
=B2>DATEVALUE("2012/3/14")
也就是少了「"」這個符號……加不進去……持續嘗試中!
作者:
hugh0620
時間:
2012-3-21 17:39
回復
5#
play9091
看你程式碼的寫法~
D=Date-7 '應該是用系統日期減7天,再利用D的日期在P欄位寫入函數=D2-D
若您要的跟我理解的是一樣的話~
下面的方式就可以解決你的問題
但頗為奇怪~ 使用vba要的多數是將函數運算轉成值帶入~ 減少計算~
你還要將函數寫出來~ 再去執行後續動作~ 感覺有點~...脫XXXX.....
Sub Week_KPI()
A = Range("A65536").End(xlUp).Row
D = Date - 7
For I = 2 To A
Range("P" & I).Formula = "=B" & I & ">" & "Date(" & Year(D) & "," & Month(D) & "," & Day(D) & ")"
Next
Range("A1:N65536").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("P1:Q2"), Unique:=False
End Sub
複製代碼
作者:
Hsieh
時間:
2012-3-21 18:47
回復
5#
play9091
Range("U2") = "=D2>datevalue(""" & d & """)"
作者:
play9091
時間:
2012-3-21 22:39
回復
6#
hugh0620
先進應該是沒有看清楚我對須求的描述,又或著是我描述的不夠清楚……
我想要把資料中七天前的資料不納入考量……所以須要那一段公式做為判別。
還是說先進有什麼比較好的方法可以介紹一下……也讓我可以多多學習!
作者:
Hsieh
時間:
2012-3-21 22:55
回復
8#
play9091
進階篩選可使用公式作為準則沒錯
但你檔案與你的程式碼敘述有點出入
應該在P2寫入公式才對
D = Date - 7
Range("P2") = "=B2>DATEVALUE(""" & D & """)"
Range("A1:N65536").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("P1:Q2"), Unique:=False
複製代碼
作者:
register313
時間:
2012-3-21 23:08
回復
8#
play9091
[attach]10090[/attach]
Sub Week_KPI()
Range("P2") = ">" & Date - 7
Range("A1:N65536").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("P1:Q2"), Unique:=False
End Sub
複製代碼
作者:
play9091
時間:
2012-3-22 09:56
回復
9#
Hsieh
感謝修正,因為代碼是從我寫好的整篇裡面抽出我的問題的部分,所以有一些出入,超版真的很細心……受教了
回復
10#
register313
一直想著用判別式去判斷,倒忘記了最簡單的搞述……工作一忙真的是會亂了手腳……還須要更冷靜的去分析問題啊!感謝……學習……
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)