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

[¤À¨É] VBA¤À¨É-®ÄªGÆZÃþ¦üVLOOKUP¬d¸ß,¥u¬O¥i¥H¨âÄ椬¬d

¦^´_  infoverdad
¤£¿ùªº¤À¨É,¥t¥Î Find ¤èªk  ¤À¨É.
GBKEE µoªí©ó 2011-7-18 20:23


GBKEEª©¤j¦n
¤p§Ì¬O­è¶}©l¦Û¾Çvbaªºªì¤ßªÌ¡A¬Ý¨ì³o¼ÒÀÀvlookupªºµ{¦¡«Ü·Q¾Ç²ß¡C
¥Ñ©óµù¥U½×¾Â¤]¨S¦h¤[¡A©Ò¥H¨S¿ìªk¤U¸üinfoverdad¤j¤jªºªþ¥ó¡C
¥u¦n¬Ý±z¼gªºµ{¦¡¨Ó´¢¼¯¡A¥u¬Oê©ó§Ú¬Oªì¤ßªÌ¡A¨ä¹ê¤]®Ú¥»¬Ý¤£À´§A¦b¼g¤°»ò¡C
«á¨Ó§Ú¥u¦n¤@¥y¤@¥yªº¥ÎF1ºCºC¬d¡AµM«á¦A¬Ýinfoverdad¤j¤j¶Kªº¹Ï¡A¥Î½M²qªº¤è¦¡°µ¥X¨º¤@­Ó¤u§@ªí¡C
§Ú¤£½T©w§Ú°µªº¹ï¤£¹ï¡A¦Ü¤Ö¯àµo´§¸òinfoverdad¤j¤j»¡ªºÃþ¦üvlookup¬d¸ß¥\¯àªº®ÄªG¡C

¥H¤U¡A·Q½Ð±zÀ°§Ú¬Ý¬Ý§Ú°µªº¹ï¤£¹ï¡A§Ú¬Oª½±µ¶K¤W±zªºµ{¦¡¡AµM«áµe¥X¨Óªº¤u§@ªí¡C


¤j·§´N¬O¹Ï¤¤ªº¤u§@ªí¶K¤W±zªºµ{¦¡¥i¥H¥¿±`¹B§@¡C

¦ý­«ÂI¬O§Ú¤j·§ª¾¹Dµ{¦¡¤¤¨C¤@¦Cªº§@¥Î¡A¦ý§Ú¤£À´¨C¤@¥y¹ê»Ú¤Wªº¥Îªk¡C
©Ò¥H·Q½Ð±Ð±z¡A¤£¾å±o±z¯à¤£¯à¥Î¥Õ¸Ü¤@ÂIªº¤è¦¡¬°§Ú¸ÑÄÀ¤@¤U¡AÁÂÁÂ~~

Private Sub Worksheet_Change(ByVal Target As Range)  '³o¤@¥y¬O¤£¬O·ítargetªºÀx¦s®æ¦³Åܰʪº®É­Ô´NÅýsub¤ºªºµ{¦¡°õ¦æ? ¥u¬O¬°¤°»ò³o­Ósub¥²¶·¥[¤Wprivate?

    Dim wsLists As Worksheet, Rng As Range 'dim§Ú½®Ñª¾¹D¤j·§¬O«Å§iªº·N«ä§a¡A©Ò¥H¾ã¥yªº·N«ä¬O«Å§iwsLists¬O¤u§@ªí¡Arng¬O½d³ò?

    If Target.Count > 1 Then Exit Sub '³o¥y´N¬O§Ú¹J¨ì²Ä¤@­Ó¤£·|ªº¤F¡Aifªº³¡¤À¨S¤°»ò°ÝÃD¡Atarget¸òExit Sub§Ú¤]¾å±o¡A¥u¬OCount¬O¤°»ò·N«ä°Ú?§Ú·d¤£²M·¡Count¡A¥ÎF1ªº»¡©ú§Ú¹ê¦b¤]¬Ý¤£À´@@

    Set wsLists = Worksheets("Lists") '³o­Ó¬O§âLists³o­Ósheet«ü©wµ¹wsLists

    Application.EnableEvents = False '³o¥y§Úgoogle¤F¦n¤[¡A¥bª¾¥b¸Ñ¡A¬O¤£¬O«üfalseªº®É­Ô¥ý°±¤î³o¬qµ{¦¡ªº¹B§@¡Aµ¥³QApplication.EnableEvents = False¸òtrue¥]°_¨Óªº³o¬qµ{¦¡½T¹ê¶]§¹¡AApplication.EnableEvents Åܦ¨true¡Aµ{¦¡¤~·|½T¹ê°õ¦æ?

    If Target.Column = 2 Then '³o¬O«ütargetªº¦æ¼Æ=2´Nthen

        Set Rng = wsLists.Range("A:A").Find(Target, LookAt:=xlWhole, MatchCase:=True) '³o­Ó¬O¥Îfind¶}©l¬d¸ß¤F¡A«ü©wµ¹rng¡A¥u¬O§Ú¤£À´lookat:=xlWhole¬O¤°»ò·N«ä¡AF1ªº»¡©ú¤]¨S¦³¯S§O»¡©úxlWhole¬O¦b·F¹À¡AMatchCase:=True¬O§â¤j¤p¼g¤]¦C¤J§PÂ_±ø¥ó¸Ì§a?
      
          With Target.Offset(0, 1) '³oÃä¬OÅýtargetªºµ²ªG©¹¥kÄƤ@®æ¡A¥u¬O§Ú¤£À´¬°¤°»ò­n¥Îwith

            If Not Rng Is Nothing Then .Value = Rng.Offset(0, 1).Value Else .Value = ""  'Not Rng Is Nothing¡A§Ú·Q¤F«Ü¤[¡A©Ò¥HÀ³¸Ó¬O­t­t±o¥¿ªº·N«ä?

¤U­±ªºªF¦è´N¬O¦A­«½Æ¤@¦¸¥u¬O¤è¦V¤£¦P¹ï§a?

        End With
    ElseIf Target.Column = 3 Then
        Set Rng = wsLists.Range("B:B").Find(Target, LookAt:=xlWhole, MatchCase:=True)
        With Target.Offset(0, -1)
            If Not Rng Is Nothing Then .Value = Rng.Offset(0, -1).Value Else .Value = ""
        End With
    End If
    Application.EnableEvents = True
End Sub

¥H¤W¡A§Ú°Ýªº¤è¦¡«ÜµL¸£¡A¦]¬°§Ú¹ïVBA¹ê¦b¬O¨S¤°»ò°ò¦¥i¨¥¡C
¤£¹L§Ú¬O¯uªº«Ü·Q¾Ç¡A¦pªGGBKEEª©¤j¤£¶û³Â·Ðªº¸Ü¡AÁٽбzÀ°§Ú¸Ñ´b¤@¤U¡C
½ÐºÉ¥i¯à¥Õ¸Ü¤@ÂI¡AF1ªº»¡©ú¦³ªº³¡¥÷§Ú¬Ý±o«Ü¼Ò½k.......
ÁÂÁÂ~~(¸÷)

TOP

§Ú¦n·Q¤U¸ü¨Ó¬Ý¬Ý¡A¥ú¬O¬Ý¥N½X¹ê¦b¬Ý¤£©ú¥Õ

TOP

·PÁ¤À¨É, ÁÂÁÂ

TOP

·PÁ¤À¨É, ÁÂÁÂ

TOP

¦^´_ 10# infoverdad


½Ð°Ý infoverdad

±zªþÀɪºtest¡A­Y­n§â¸ê®ÆÅã²{¤è¦¡¡A±q¡y¥ª¥k¡z§ï¬°¡y¤W¤U¡z®É­n¦p¦ó§ï¡A¬ã¨s¤F¦n¤[¡A·Q±q offset¥h§ï¡A¥i¬O§ä¤£¦a¤è¥i¥H§ï?¥i¥H«ü¾É¤@¤U¶Ü?
peter460191

TOP

·PÁª©¤jªº¤À¨É¡A¥Ø«eÁÙ¬OµLªk¤U¸ü°Ñ¦Ò.. ¥u¯à³z¹L¤À¨Éªºµ{¦¡½X¨Ó´úÅç

TOP

¥»©«³Ì«á¥Ñ infoverdad ©ó 2011-7-19 11:11 ½s¿è

§Ú¦Û¤v­×§ï¤F¤@¤U,¤£¹L¤£ª¾¥i§_¦Aºë²?
¥tªþ¤W´ú¸ÕÀÉ. VBA TEST2.rar (7.57 KB)
  1. Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  2. Dim A As Range, c As Integer, s As Range

  3. On Error GoTo errHandler

  4. Application.EnableEvents = False
  5. With Target.Validation
  6. Set s = Evaluate(.Formula1)
  7. End With
  8. Set A = s.Find(Target, lookat:=xlWhole)


  9. If Not A Is Nothing Then 'Àˬd¬O§_¦³¤º®e³Q²MªÅ

  10. c = IIf(A.Column = A.CurrentRegion.Column, 1, -1)
  11. Target.Offset(, c) = A.Offset(, c)
  12. Application.EnableEvents = True

  13. Else '·í¦³¤º®e³Q²MªÅ®É¤§³B²z

  14.    GoTo exitHandler

  15. End If

  16. exitHandler:
  17. Application.EnableEvents = True
  18. Exit Sub

  19. errHandler:
  20. 'MsgBox Err.Number & ": " & Err.Description
  21. GoTo exitHandler
  22. End Sub
½Æ»s¥N½X

TOP

¦n·PÁ¨â¦ì¶W¯Åª©¤jªº«ü¾É,µ¥¤@¤U¨Ó¥Î¥Î¬Ý.

TOP

¦^´_ 7# GBKEE


ÁÙ¬O§A¤ß«ä²Ó¿°¡A³o­Ó§PÂ_§Ú­ì¥ý¬O¦³¼g¶i¥h
¥u¬O«á¨Ó»{¬°²M³æ¤ºªº¿ï¶µ©Ò¥H¬Ù²¤
³o­Ó§PÂ_¡A·Q·QÁÙ¬O¥²­n¡A¦]¬°´Nºâ¬OÅçÃÒ¡AÁÙ¬O®e³\²MªÅ¤º®e
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2011-7-19 08:48 ½s¿è

¦^´_ 6# Hsieh¶Wª©
§Úªº·N«ä¬O¦³ÅçÃÒ²M³æªºÀx¦s®æ¦¡¬O¤¹³\¿é¤JªÅ¥Õ­Èªº,¦p¿é¤J­È¬O ªÅ¥Õ­È,
Set A = s.Find(Target, lookat:=xlWhole) ¶Ç¦^ A Is Nothing
§A4¼Óªºµ{¦¡, ¦b¼Ó¥DªºÀÉ®×·|²£¥Í¿ù»~.

TOP

        ÀR«ä¦Û¦b : ¬°¦Û¤v§äÂǤfªº¤H¥Ã»·¤£·|¶i¨B¡C
ªð¦^¦Cªí ¤W¤@¥DÃD