Criteria1:=">=" & today()為何行不通?



贊助商連結


頁 : [1] 2

TPBUNNY
2002-03-30, 09:13 PM
Selection.AutoFilter Field:=1, Criteria1:=">=2002/3/30",
以上的程式可以篩選出含2002/3/30及以後日期的資料,但若改成
Selection.AutoFilter Field:=1, Criteria1:="=2002/3/30",
就一筆資料都查不到了,請問是什麼原因?又
today()函數要如何與程式結合?Criteria1:=">=" & today()是行不通的,我遍查Visual Basic說明檔都查不到相關資料,連xlAnd也查不到是什麼意思,語法也看不到出處。
請問各位前輩:像類似這種問題要去何處查資料?或是說:查詢的技巧為何?各位前輩是怎麼學會的呢?是先學會了VB才來學VBA嗎?

贊助商連結


沙拉油
2002-03-31, 04:37 AM
Criteria1:=">=" & today()為何行不通?
函數請改用Date
VBA裡面沒有Today()這個函數

Criteria1:="=2002/3/30"
這個問題只能給個建議解決
Dim d As Date
d = "2002/3/30"
Selection.AutoFilter Field:=1, Criteria1:=d

何處查資料?查詢的技巧為何?
小弟都是在說明內找資料,有問題看錯誤顯示是什麼?然後多試幾次
小弟不會VB

hdjdodo
2002-03-31, 08:32 AM
沙拉油師父您的動畫商標"酷"

TPBUNNY
2002-03-31, 05:27 PM
如果我在[P1}設了=TODAY()的函數,用
Selection.AutoFilter Field:=1, Criteria1:=">=" & [p1]可以查到含今天及今天以後的全部資料,若將Criteria1:=">=" & [p1] 改作 Criteria1:="=" & [p1]就一筆都查不到了,為何差了一個>的符號就不行了呢?

沙拉油
2002-03-31, 05:48 PM
Criteria1:="=" & [p1]
上面那樣可能被判斷成文字了

改成 Criteria1:=[P1].Value 應該就可以了
明確指定值應該是個好習慣

to hdjdodo:你有眼光 :D :D :D
不過師父?好像讓我覺得我好老喔 :( :( :(

TPBUNNY
2002-03-31, 10:52 PM
還是不行呢!附上檔案請您診斷一下,謝謝!

沙拉油
2002-04-01, 02:58 PM
第一種方法
表單的程式碼
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
td = Year(Range("P1")) & "/"
If Month(Range("P1")) < 10 Then td = td & "0"
td = td & Month(Range("P1")) & "/"
If Day(Range("P1")) < 10 Then td = td & "0"
td = td & Day(Range("P1"))
Range("付款日期").AutoFilter Field:=1, Criteria1:=td
[a1].Formula = "=SUBTOTAL(9,F10:F109)"
UserForm1.Hide
End Sub

Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub

工作表彰銀的 CommandButton2 按鈕也稍作修改
Private Sub CommandButton2_Click()
ActiveSheet.AutoFilterMode = False
End Sub

第二種方法
將 F10:F109 的儲存格格式設為 yyyy/m/d
然後表單的確定按鈕程式碼用這樣
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Range("付款日期").AutoFilter Field:=1, Criteria1:=[P1].Value
[a1].Formula = "=SUBTOTAL(9,F10:F109)"
UserForm1.Hide
End Sub

提供參考.......

TPBUNNY
2002-04-01, 08:39 PM
謝謝沙拉油,因為我看不懂第一種方法,所以用第二種方法做成功了,我是否能更進一步的請教,如果我有五個帳戶的管制表(彰銀、土銀、華信、台新、富邦),如何將「本日到期」的全部資料集合到一張總表上,可以抓到「銀行名稱、支票編號、抬頭、付款金額」的資料,提示一下方法即可,謝謝!

沙拉油
2002-04-03, 08:38 AM
如果表格格式都一樣的話,或許可以對每個工作表用進階篩選的方式將篩選結果複製到[總表]內,再將標題列刪除<==這裡所說的使用進階篩選是指用巨集的模式
不然就是使用回圈對每個工作表作比對了

TPBUNNY
2002-04-03, 08:48 PM
沙拉油您好:
我遇到一件怪事,我將檔案依照您上次所提示的方式改正後,在家中的電腦上可以只查到當天(=[p1].value)的資料,比如當天到期有二筆,就可篩選出二筆,可是將同一個檔案copy到公司的電腦上去用時,卻無法篩選出任何資料,請問您知道會是什麼原因嗎?家中與公司都是用excel2000的軟體)