PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : (آموزشی) فیلتر سلول ها بر اساس تاریخ



ali.b
2015/06/16, 10:23
سلام
همون طور که برای من سوال پیش اومد و دوستان هم اخیرا سوال کردن فیلتر گرفتن با vb هست
این دو تانمونه کد برای گرفتن فیلتر هست که یکی تاریخ رو تو خود کد درج میکنی مثل کد زیر

Sub Macro2() ActiveSheet.Range("$B$3:$B$19").AutoFilter field:=1, Criteria1:= _
">=1393/09/01", Operator:=xlAnd, Criteria2:="<=1393/09/30"
End Sub

اما بخواین تاریخ ها رو در سلول های مورد نظر بنویسید و با اجرای کد تاریخ های بین اونها رو حساب کنه ازکد زیر استفاده کنید

Sub test()ActiveSheet.Range("$B$3").AutoFilter field:=1, Criteria1:= _
">=" & Sheet1.Range("e1"), Operator:=xlAnd, Criteria2:="<=" & Sheet1.Range("e2")
End Sub

حالا اگه بخوای دوتا فیترگیری داشته باشیم یعنی مثلا اول از تاریخ فلان تا تاریخ فلان فیلتر کن و بعد ستون یعدی دوباره کلمه فلان رو فیتر کن

برایاین کار از کد زیر میتونید کمک بگیرید

Sub filrun()Application.ScreenUpdating = False
Dim j As Integer, k As Integer
j = Worksheets.Count
For k = 2 To 9
With Worksheets(k)
.Range("G3").AutoFilter Field:=7, Criteria1:=Sheet13.Range("f1") _
, Operator:=xlOr, Criteria2:=Sheet13.Range("g1")
'.Range("L3").AutoFilter Field:=12, Criteria1:=Sheet13.Range("m1")


End With
Next k
Application.ScreenUpdating = True
End Sub

درضمن این کد کارش اینه که تمامی شیت های 2 تا 9 رو خودکار بر اساس داده ها فیلتر بگیره و برای کسانی که شیت های زیاد اما با فرم یکسان دارد خوبه امانکته اموزشی این بحث بخش ابی هست و بخش قرمر شماره ستونی که میخواین فیلتر روش اعمال بشه

ali.b
2015/06/16, 10:32
حالا اگه فیلتر کردیم و دوباره بخوایم به حالت عادی برگردونیم از روش زیر استفاده میکنیم

Sub filundo()
Application.ScreenUpdating = False
Dim j As Integer, k As Integer
j = Worksheets.Count
For k = 2 To 9
With Worksheets(k)
.Range("G3").AutoFilter Field:=7
'.Range("l3").AutoFilter Field:=12
End With
Next k
Application.ScreenUpdating = True
End Sub