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

[µo°Ý] Ãö©óWorksheetFunction.matchªº¨Ï¥Î¤èªk?

[µo°Ý] Ãö©óWorksheetFunction.matchªº¨Ï¥Î¤èªk?

¤£¦n·N«ä ¦U¦ì«e½ú ³Ìªñ¤p§Ì¦b¤u§@¤W­è¦n¦³¨Ï¥Î¨ìEXCELªºVBA
¦ý¬O«ê¦n¸I¨ì¤@¨Ç°ÝÃD¹ê¦b·d¤£À´ ©Ò¥H¤W¨Óµo°Ý½Ð¨D«üÂI!!

1.¥»¨Ó¬O¨Ï¥Î Find ¤èªk¨Ó´M§ä¬Û²Åªº¸ê®Æ¨Ã¥Î FindNext ¨Ó´M§ä¤U¤@µ§¡A¦ýµo²{¸ê®Æ¶q¤@¤j¤§«á¹q¸£ªº°õ¦æ³t«×¹ê¦bºC¨ì¦³ÂI¸Ø±i(2000µ§¸ê®Æ»Ý­n20¬í¥ª¥k)¡A¬G§ï¼g¤FMatchªº¤èªk¡C
2.Match¤èªk¤ä´©ªº¸ê®Æ«¬ºA¬O­þºØ©O?¦]¬°¤p§Ì¨Ï¥Îstring«¬ºA¨Ó°õ¦æ(¤]¹Á¸Õ¹LVariant¤@¼Ë·|¿ù)¡Aµo²{³¡¤Àªº¸ê®Æ¶×¤J¬O¦æ±o³qªº(EX:21040523007)³oµ§¥i¥H¡A¦ý¦³³¡¤À¸ê®Æ«o¸õ¥X¿ù»~1004 µLªk¨ú±oÃþ§OworksheetFunction ªº Match ÄÝ©Ê(EX:21040508010)³oµ§¡A¦³ÂIºÃ´b¡A¦]¬°³£¬O¥Î¦P¤@§PÂ_¤è¦¡¡A«ç»ò·|¦³¦hºØ¤£¦Pªºµ²ªG¡C
3.Matchªº´M§ä¤U¤@µ§ªº»yªk¤p§Ì¥hMSDN¬Ý¹L¡A¥i¬O¤£¬O«Ü¤F¸Ñ¡A¤W­±¥u¼g¤F "match = match.NextMatch()  " ¥i¬O§Ú§â¥¦ÅܼÆÂà´«±a¶i¥h«á¡A¸õ¥X¿ù»~ ¤£¥¿½Tªº©w¦ì¶µ(qualifier)¡C

¥H¤W¤T­Ó°ÝÃD¯uªº«ÜÀY¯k¡A¦b¦¹ªþ¤WÀɮתþ¥ó¥H¤Î¥N½X³Â·Ð¦U¦ì«e½ú«ü¤Þ¤@¤U¡A·P¿E¤£ºÉ¡C

¡°CODEªº¦ì¸m¦b"µn¿ý"¦¹¤u§@ªí¤ºªº"¿é¤J¸¹½X"ªº¦ì¸m
  1. Private Sub CommandButton4_Click() '¿é¤J¤u¥d¸¹½X

  2. Dim a As String, cardnumber As String

  3. Application.ScreenUpdating = False

  4. cardnumber = InputBox("½Ð¿é¤J¤u¥d¸¹½X(«Øij¨Ï¥Î±ø½X¾¹)")
  5. i = 9

  6. Sheets("¸ê®Æ®w").Activate

  7. a = Application.WorksheetFunction.Match(CDbl(cardnumber), Sheets("¸ê®Æ®w").[B:B], 0) '³]©w¸ê®Æ®w¸ÌªºBÄæ·j´Mµ²ªG¬°a
  8. If a = "0" Then
  9.     MsgBox "¥¼·j´M¨ì±z©Ò¿é¤Jªº¤u¥d¸¹½X¡A½Ð½T»{¸ê®Æ¨Ó·½µL»~¡C"
  10.     Sheets("µn¿ý").Select
  11.     Exit Sub
  12. Else
  13.     Sheets("µn¿ý").Range("A2") = cardnumber
  14.     firstAddress = Cells(a, 2).Address
  15.                   
  16.     Do
  17.         Sheets("¸ê®Æ®w").Select
  18.         ActiveSheet.Range(ActiveSheet.Cells(a, 1), ActiveSheet.Cells(a, 62)).Select '¿ï¾Ü¨Ã½Æ»sÄæ¦ì
  19.         Selection.Copy
  20.    
  21.         Sheets("µn¿ý").Select
  22.             '¦pªG§P©wBÄæCÄæ¤ÎKÄæ³£¬°ªÅ­Èªº¸Ü«h¶K¤W
  23.             If (ActiveSheet.Cells(i, 2) = "" And ActiveSheet.Cells(i, 3) = "" And ActiveSheet.Cells(i, 6) = "") Then
  24.             ActiveSheet.Cells(i, 2).Select
  25.             Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  26.             Application.CutCopyMode = False
  27.         
  28.             Sheets("¸ê®Æ®w").Select
  29.         
  30.             'a = a.Nextmatch()
  31.             secondAddress = Cells(a, 2).Address '§PÂ_ADDRESS«á¿ï¨ú½Æ»sÄæ¦ì
  32.             Else
  33.             End If
  34.         i = i + 1
  35.            
  36.     Loop While secondAddress <> firstAddress
  37.     Sheets("µn¿ý").Select
  38.    
  39. End If

  40. Range("K9") = "=G7"
  41. Range("K10") = "=H7"
  42. Range("K11") = "=I7"
  43. Range("K12") = "=J7"
  44. Range("K13") = "=K7"
  45. Range("K14") = "=L7"
  46. Range("K15") = "=M7"
  47. Range("K16") = "=N7"
  48. Range("K17") = "=O7"
  49. Range("K18") = "=P7"


  50. Application.ScreenUpdating = True
  51. End Sub
½Æ»s¥N½X
TEST.rar (78.67 KB)

¦^´_ 2# lpk187

¦nªº¡AÁÂÁÂL¤jªº´£ÂI¡A§Ú¤]¥¿¦b·Q¦pªG¨S¿ìªk·d©w¡A¦A´«­Ó¤è¦¡¼g¬Ý¬Ý!!

TOP

¦^´_ 3# GBKEE

G¤jÁÂÁÂÅo¡A­ì¨Ó±`±`µo¥Í¿ù»~§ä¤£¨ìmatchªº­È?¥i¬O©ú©úªí³æ¸Ì­±¦³¨º­Ó­Èªü...«ç»òÁÙ¬O·|§ä¤£¨ì©O?

TOP

¦^´_ 6# GBKEE

·PÁ¡A¦]¬°office¨S¦³Åã¥Üºñ¦â¼ÐÅÒ´£¿ô¡A©~µM§Ñ°O¤F³Ì­ì©lÀx¦s®æ®æ¦¡ªº°ÝÃD¡CÃø©Ç°ÝÃD¹é¹é....·PÁ«ü¾É~!!

TOP

        ÀR«ä¦Û¦b : ¤@¥y·Å·xªº¸Ü¡A´N¹³©¹§O¤H¨­¤WÅx­»¤ô¡A¦Û¤v·|ªg¨ì¨â¤Tºw¡C
ªð¦^¦Cªí ¤W¤@¥DÃD