ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

AutoFilter ¡uŪ¥X¡vCriteriaªº§P§O¦¡

AutoFilter ¡uŪ¥X¡vCriteriaªº§P§O¦¡

¤@¯ë±`¨£ªº³£¬O¼g¤Jcriteria«á¶i¦æ¿z¿ï
Ä´¦p­n¿z¿ïCÄæ¬O"¥Ò"©Î"¤A"©Î"¤þ"ªºÀx¦s®æ
vba»yªk·|¬O Column("C:"C").Autofilter field:=1,Criteria1:=Array("¥Ò","¤A","¤þ")

²{¦b§Ú»Ý­nªº¬O§Ú¦³«Ü¦hÄæ­n¶i¦æ¿z¿ï,
§Ú·Q§â¿z¿ïªº±ø¥ó¬ö¿ý¤U¨Ó,
¤§«á¦b¨ä¥L¦³¦P¼ËÄæ¦ìªºsheet¥Î³o¨Çcriteria¶i¦æ¿z¿ï
¤U­±»yªk°£¤F¿z¿ï¡u®É¶¡¡v¥~¹B¦æ³£ok

«ä¸ô:

¥ý³Ð«Ø¤@°}¦CA,¥Î¨ÓÀx¦s¨CÄ檺¿z¿ï±ø¥ó

1.¥ý§PÂ_¸ÓÄæ¬O§_¦³¿z¿ï
2.¦pªG¬O,¦A§PÂ_Criteria1¬O§_¬O°}¦C
­Y¬O°}¦C,«hªí¥Ü¿z¿ï¼Æ¶q>=3¥Bcriteria2µL©w¸q,
=>§âcriteria1Ū¤J°}¦CA
3.¦pªGcriteria1¤£¬O°}¦C,«h¿z¿ï¼Æ¶q¤£¬O1´N¬O2,
±µµÛ§PÂ_1©Î2ªº¤èªk¬O§Q¥Îoperator,¦pªGoperator¬O0,ªí¥Ü¿z¿ï¼Æ¶q¬O1
4.else´N¤@©w¬O¿z¿ï¼Æ¶q=2,¦¹®Écriteria1©Mcriteria2¦UÀx¦s¤@­Ó­È
  1. Sub ¿z¿ï±ø¥ó()
  2. Range("A1:C10").Autofilter   '¹ïA1¦ÜC10¶i¦æ¿z¿ï
  3. Dim ConditionArray(1 to 3)   '³Ð¤@°}¦C,Àx¦s¨CÄ檺¿z¿ï±ø¥ó

  4. With Range("A1:C10").Autofilter
  5. For i=1 to .Filters.Count   '³vÄæ§PÂ_
  6.     If .Filters(i).On Then  '§PÂ_¸ÓÄ榳µL¿z¿ï
  7.         If isarray(.Filters(i).Criteria1) Then
  8.             ConditionArr(i)=.Filters(i).Criteria1   '¸ÓÄæ¿z¿ï¼Æ¶q>=3,¥H°}¦C¤è¦¡¦s¤JConditionArr
  9.         End if
  10.     Elseif .Filters(i).Operator Then  '¦pªG¬O0(¿z¿ï¼Æ¶q=1)«hªð¦^false
  11.         ConditionArr(i)=.Filters(i).Criteria1
  12.     Else
  13.         Dim temp(1 to 2)    '³Ð¤@¼È¦s°}¦C,Åý±ø¥ó1©M2¦s¦¨°}¦C
  14.         temp(1)=.Filters(i).Criteria1
  15.         temp(2)=.Filters(i).Criteria2
  16.         ConditionArr(i)= temp  ±N¼È¦s°}¦C¦s¤JConditionArr°}¦C
  17.     End if
  18. Next

  19. End with

  20. End sub
½Æ»s¥N½X
¤§«á¦AŪ¥X§Y¥i
  1. For i = 1 To 3
  2.     If IsEmpty(CondiArr(i)) Then GoTo Jump
  3.       If IsArray(CondiArr(i)) Then   
  4.         ReDim RedoArr(1 To UBound(CondiArr(i)))   
  5.         For j = 1 To UBound(CondiArr(i))
  6.         
  7.             RedoArr(j) = Mid(CondiArr(i)(j), 2, Len(CondiArr(i)(j)) - 1)    '¥h°£µ¥¸¹
  8.         Next j

  9.             ActiveSheet.Range(Cells(1, 1), Cells(Last_row, LC2)).AutoFilter Field:=i, Criteria1:=RedoArr, Operator:=xlFilterValues
  10.         Else
  11.             ActiveSheet.Range(Cells(1, 1), Cells(Last_row, LC2)).AutoFilter Field:=i, Criteria1:=CondiArr(i), Operator:=xlFilterValues
  12.      End If
  13. Jump:
  14. Next
½Æ»s¥N½X
§Ú¹J¨ìªº§xÃø¬O,¦pªG¦³¬Y¤@Äæ¬O®É¶¡,
¥B®É¶¡Ä´¦p¿z5¤ë©M6¤ë,
³o¼Ë¦b¤@¶}©l§PÂ_isarrayªºcriteria1®É,·|¥X²{criteria1À³¥Îµ{¦¡¿ù»~
¥B³z¹Lcriteria2ºÊ¬Ý¦¡,·|µo²{criteria2¤]¬OÀ³¥Îµ{¦¡¿ù»~
¦ý³z¹L¿ý»s¥¨¶°(¿ý»s¿z¿ï®É¶¡)·|µo²{®É¶¡Äæ³£¦s¦bcriteria2
­n¦p¦ó¤~¯à§â¿z¿ï®É¶¡ªº±ø¥óÀx¦s¤U¨Ó©O?
MPEG

¦^´_ 2# mpegwmvavi


§ä¨ì¥~°ê¬ÛÃöªº©«¤l,µo°ÝªÌ©M§Ú¹J¨ì¤@¼Ò¤@¼Ëªº°ÝÃDXD
http://answers.microsoft.com/en-us/office/forum/office_2007-customize/autofilter-criteria-with-xlfiltervalues-and-dates/90da7c5a-c813-4182-9849-c57ab72dac63
¿ý»s¿z¿ï®É¶¡Äæ·|µo²{,¿z¿ïªº±ø¥óÀx¦s¦bcriteria2
¦ý¬O«oµLªk§âcriteria2Ū¶i¥t¤@­Ó°}¦CÀx¦s°_¨Ó
·|¥X²{À³¥Îµ{¦¡¿ù»~1004
©«¤l¨ì³Ì«á¤]¬OµL¸Ñ...
§Æ±æª©¥D¸s¯àÀ°À°§Ú°Ú~~:'(
ÁÂÁÂ
MPEG

TOP

¦^´_ 1# mpegwmvavi


QQ",³£¨S¤H¦^

§Ú¦Û¤v°µ¤F­ÓÀÉ®×(µL®É¶¡ªºÄæ¦ì¿z¿ï,©M¦³®É¶¡ªºÄæ¦ì¿z¿ï)
"¿z¿ï1"ªº¤u§@ªí¹B¦æ³£ok
¥i¥H¶¶§QŪ¥X¿z¿ï±ø¥ó,¨Ã¿é¥X¿z¿ï±ø¥ó¦b"¿é¥X¿z¿ï±ø¥ó1"³o­Ósheet
"¿z¿ï2"ªº¤u§@ªí§â²Ä¥|Äæ´«¦¨®É¶¡
¦b­nŪ¥X¿z¿ï±ø¥óªº®É­Ô,·|¥X¿ù
¥X¿ùªº»y¥yºI¹Ï¦p¤U
http://iamjo.myweb.hinet.net/Error image.PNG
³z¹LºÊ¬Ý¦¡¥i¥H±oª¾µ{¦¡¶]¨ì®É¶¡³o¤@Äæ®É,criteria1©M2³£¨S¦³¦s¨ú¥ô¦ó­È
¦³¤Hª¾¹D«ç»òŪ¥X®É¶¡ªº¿z¿ï±ø¥ó¶Ü
§Æ±æ¦³°ª¤â«üÂI¤@¤U,ÁÂÁÂ

ÀÉ®×:
(¤@ª½¤£¯à¤W¶Çexcel,§Ú©ñ¦b§ÚªºªÅ¶¡¸Ì)
http://iamjo.myweb.hinet.net/Autofilter.xls
MPEG

TOP

        ÀR«ä¦Û¦b : §g¤l¦p¤ô¡AÀH¤è´N¶ê¡AµL³B¤£¦Û¦b¡C
ªð¦^¦Cªí ¤W¤@¥DÃD