Board logo

標題: [發問] 如何比對時間…… [打印本頁]

作者: play9091    時間: 2012-3-21 10:35     標題: 如何比對時間……

本帖最後由 play9091 於 2012-3-21 11:28 編輯

我想要用"進階篩選"對一堆資料做篩選。

但現在遇到一個問題,我想要對日期做篩選。但是不知道怎麼樣子去和日期做比對……

例如:我想要篩選大於2012/03/14,但是實際篩選出來2012/03/14還是在篩選後的列表裡面!

我的寫法如下:
  1.     D = Date - 7
  2.     Range("S2") = "=D2>" & D
  3.    Range("A1:Q65536").AdvancedFilter Action:=xlFilterInPlace, _
  4.         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寫出樓上先進寫的公式好難喔!怎麼寫都錯啊!
  1.     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.....
  1. Sub Week_KPI()

  2. A = Range("A65536").End(xlUp).Row
  3. D = Date - 7
  4. For I = 2 To A
  5.     Range("P" & I).Formula = "=B" & I & ">" & "Date(" & Year(D) & "," & Month(D) & "," & Day(D) & ")"
  6. Next
  7.     Range("A1:N65536").AdvancedFilter Action:=xlFilterInPlace, _
  8.         CriteriaRange:=Range("P1:Q2"), Unique:=False
  9. 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寫入公式才對
  1.     D = Date - 7
  2.     Range("P2") = "=B2>DATEVALUE(""" & D & """)"
  3.     Range("A1:N65536").AdvancedFilter Action:=xlFilterInPlace, _
  4.         CriteriaRange:=Range("P1:Q2"), Unique:=False
複製代碼

作者: register313    時間: 2012-3-21 23:08

回復 8# play9091

[attach]10090[/attach]
  1. Sub Week_KPI()
  2.     Range("P2") = ">" & Date - 7
  3.     Range("A1:N65536").AdvancedFilter Action:=xlFilterInPlace, _
  4.         CriteriaRange:=Range("P1:Q2"), Unique:=False
  5. End Sub
複製代碼

作者: play9091    時間: 2012-3-22 09:56

回復 9# Hsieh


    感謝修正,因為代碼是從我寫好的整篇裡面抽出我的問題的部分,所以有一些出入,超版真的很細心……受教了

回復 10# register313


    一直想著用判別式去判斷,倒忘記了最簡單的搞述……工作一忙真的是會亂了手腳……還須要更冷靜的去分析問題啊!感謝……學習……




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)