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

[µo°Ý] «ç»ò¦bUSERFORM¤¤¥[¤J¥i¿z¿ï½Æ¿ï¤§¾ðª¬¹Ï

¦^´_ 2# chaoyiho

===Module===
  1. Public vD

  2. Option Explicit
  3. ...
½Æ»s¥N½X
  1. Private Sub Workbook_Open()
  2.     Set vD = CreateObject("Scripting.Dictionary")
  3.     EXCELªí³æ³B²z¤¶­±.Show vbModeless
  4. End Sub
½Æ»s¥N½X
  1. Private Sub CommandButton1_Click()
  2.     If Application.FindFile = False Then
  3.         MsgBox "±z¨S¦³¶}±Ò¥ÀÀÉ"
  4.     End If

  5.     Dim lRow&
  6.    
  7.     lRow = 3
  8.     vD.RemoveAll
  9.     While Cells(lRow, 1) <> ""
  10.       If Not vD.Exists(CStr(Cells(lRow, 1))) Then
  11.         EXCELªí³æ³B²z¤¶­±.ListBox1.AddItem CStr(Cells(lRow, 1))
  12.         vD(CStr(Cells(lRow, 1))) = lRow
  13.       End If
  14.       lRow = lRow + 1
  15.     Wend
  16. End Sub
½Æ»s¥N½X
¦]¬°®É¶¡¤W¨Ó¤£¤Î, ³o¸Ì¥u°µ¥[¨ì ListBox ªº¤èªk,
§A¥i¥H°Ñ·Ó§ï¦¨°ÊºA·s¼W¬°§A­nªº CheckBox ¤¸¥ó.

ªí³æ³B²z¨t²Î3.2(PLS)-a.zip (614.78 KB)

TOP

¥»©«³Ì«á¥Ñ luhpro ©ó 2016-4-22 23:35 ½s¿è

¦^´_ 9# chaoyiho
©êºp,²{¦b¤~¦³®É¶¡¦^¤å.

§Ú¤§©Ò¥H·|§â vD ªº©w¸q©ñ¦b Module ¤W,
­ì¥ýªººc·Q¬O¸ê®ÆÀÉ®×´N¨º¤@­Ó,
¨º»ò¶}©l®É´NŪ¨ú¤@¦¸,
¦r¨å«Ø¦n«á­±¥u­n®³¨Ó¥Î´N¦n¤F,
¤£¥Î¨C«ö¤@¦¸«ö¶s´N¤S­n­«·sŪ¨úÀɮפΫإ߹ïÀ³¸ê®Æ.

²ßºD©ÊªºÂI¨â¤U "¶}±ÒÂÂÀÉ" «ö¶s¶}±Ò CommandButton1_Click ¹ê°µ¦Û¤vªººc·Q,
¦]¬°¦^¤å«á¤~µo²{³B²z "±z¨S¦³¶}±Ò¥ÀÀÉ" ªº Sub ¦³¦n´X­Ó,  O.O"
©È·|»P¤§«eµ²ªG­«Å|¤~·|¥[¨º¤@¦æ®ø°£«e¤â.

¦Ü©ó§Aµo¥Íªº°ÝÃD,
§Ú¦b³o¨â­ÓÀɮ׶¡¾Þ§@¨Ã¤£·|µo¥Í,
¦]¬° RemoveAll ¥u²M°£ Key »P ¸ê®Æ ¶¡ªº¹ïÀ³Ãö«Y,
¨Ã¤£·|§R°£ vD ¦r¨åª«¥ó.
¬ã§P¥i¯à¬O¾Þ§@¤¤µ{¦¡¥ý«á¶¶§Ç°ÝÃD,
¾É­P§A¨S¦³°õ¦æ¨ì  Set vD = CreateObject("Scripting.Dictionary").

¦ÓÃö©ó°ÝÃDªº³B²z:
¦b 10# ªº¬O¤@ºØ²³æ©úÁAªº³B²z¤èªk.
¤£¹L¨Ì­Ó¤H¤§«eªº¸gÅç,
¤]¦³¥i¯à¬O­Ó¤H¥\¤O¤Ó®t,
§Úµo²{ Excel ¤W¨Ã¤£¯à¥Î¤@­Ó Is Nothing ´N¥]¿ì©Ò¦³³oÃþª«¥ó¿ù»~ªº§PÂ_,
¦]¬°³o¤@¦æ«ü¥O¤]¥i¯à·|¥X²{¿ù»~(¦]¬°³s vD ³o­Óª«¥ó³£¤£¯à¥X²{¦b§PÂ_¦¡¤¤)

¥t¦³¤@­Ó«Ü¦h¤H¨Ï¥Îªº³B²z¤èªk,
´N¬O¤@¶}©l´N¥[­Ó On Error Resume Next,
³o¼Ë¹J¨ì¿ù»~´N·í°µ¨S°ÝÃDµo¥ÍÄ~Äò¶]¤U¥h,
¹B®ð¦n´N¨S¨Æ...
¦ý­n¬O¹B®ð¤£¦nªº¸Ü...

¤ñ¸û¥¿²Î¥B¤£©ö¥X²{«D¹w´Áµ²ªGªº°µªk¬O°w¹ï¿ù»~°µ±Mªùªº³B²z. (½Ð·j´M On Error ³¯­z¦¡ ªº»¡©ú)

Sub ChkFile()
...
    On Error GoTo ErrorHandler    ' ¶}±Ò¿ù»~³B²zµ{¦¡¡C
    vD.RemoveAll ' µo¥Í¿ù»~»Ý°µ³B²zªºµ{¦¡
    On Error Goto 0    ' Ãö³¬¿ù»~³B²zµ{¦¡¡C
...   
Exit Sub        ' Â÷¶}µ{¦¡¡A¥HÁקK¶i¤J¿ù»~³B²zµ{¦¡¡C

ErrorHandler:    ' ¿ù»~³B²zµ{¦¡¡C
    Select Case Err.Number    ' Àˬd¿ù»~¥N½X¡C
        Case 424    ' µo¥Í¡u¦¹³B»Ý­nª«¥ó¡v¤§¿ù»~¡C
            Set vD = CreateObject("Scripting.Dictionary") ' «Ø¥ßª«¥ó¡C(°w¹ï¿ù»~µo¥Í­ì¦]°µ¸É±Ï©Î³B²z)

        Case Else ' ¥Î Err.number ¨ú±o¿ù»~¥N½X, ¥Î Err.Description ¨ú±o¿ù»~»¡©ú¤å¦r. Err.Clear ²M°£¿ù»~ºX¼Ð
            MsgBox Prompt:=Err.Description, Buttons:=vbOK, Title:="µo¥Í¿ù»~"
            Err.Clear
            Exit Sub
    End Select
    Resume    ' ±Nµ{¦¡°õ¦æ¨BÆJ¦^¨ì­ìµo¥Í¿ù»~ªº³¯­z¦¡¤¤¡C
End Sub


¥t¥~, °w¹ï­«½Æ¥B¥i´À¥Nªºµ{§Ç«Øij¥t«Ø¥ß°Æµ{¦¡¥H¨Ñ©I¥s, ¦p:
Image22_Click
Image3_Click
Image32_Click()
CommandButton1_Click()
CommandButton10_Click()
CommandButton14_Click()
CommandButton6_Click()
ªº¤º®e¥þ³¡³£¬O :

    If Application.FindFile = False Then
        MsgBox "±z¨S¦³¶}±Ò¥ÀÀÉ"
    End If

¨º´N¥i¥H§â³o¬qÂk¨ì Module ¤º, ³]¬° Public, ¦A­Ó§O©ñ¤J©I¥s«ü¥O§Y¥i.
¦n³B¬Oµ{¦¡½X®e©ö­×§ï»PºÞ²z, ÁYµuµ{¦¡½X, ¿ëÃѫפ]¸û¦n.
  1. Public Sub ChkFile()
  2.     If Application.FindFile = False Then
  3.         MsgBox "±z¨S¦³¶}±Ò¥ÀÀÉ"
  4.     End If

  5.     Dim lRow&
  6.    
  7.     lRow = 3
  8.    
  9.     On Error GoTo ErrorHandler    ' ¶}±Ò¿ù»~³B²zµ{¦¡¡C
  10.     vD.RemoveAll
  11.     EXCELªí³æ³B²z¤¶­±.ListBox1.Clear ' ²M°£ ListBox ªº¿ï³æ
  12.     On Error GoTo 0    ' Ãö³¬¿ù»~³B²zµ{¦¡¡C
  13.    
  14.     While Cells(lRow, 1) <> ""
  15.       If Not vD.Exists(CStr(Cells(lRow, 1))) Then
  16.         EXCELªí³æ³B²z¤¶­±.ListBox1.AddItem CStr(Cells(lRow, 1))
  17.         vD(CStr(Cells(lRow, 1))) = lRow
  18.       End If
  19.       lRow = lRow + 1
  20.     Wend
  21. Exit Sub        ' Â÷¶}µ{¦¡¡A¥HÁקK¶i¤J¿ù»~³B²zµ{¦¡¡C

  22. ErrorHandler:    ' ¿ù»~³B²zµ{¦¡¡C
  23.     Select Case Err.Number    ' Àˬd¿ù»~¥N½X¡C
  24.    
  25.         Case 424    ' µo¥Í¡u¦¹³B»Ý­nª«¥ó¡v¤§¿ù»~¡C
  26.             Set vD = CreateObject("Scripting.Dictionary") ' «Ø¥ßª«¥ó¡C
  27.             
  28.         Case Else   ' ¥i¥Î Err.number ¨ú±o¿ù»~¥N½X, ¥Î Err.Description ¨ú±o¿ù»~»¡©ú¤å¦r. Err.Clear ²M°£¿ù»~ºX¼Ð
  29.             MsgBox prompt:="¿ù»~¥N½X : " & Err.Number & Chr(10) & "¿ù»~­ì¦]:" & Err.Description, Buttons:=vbOK, Title:="µo¥Í¿ù»~"
  30.             Err.Clear
  31.             Exit Sub
  32.     End Select
  33.     Resume    ' ±Nµ{¦¡°õ¦æ¨BÆJ¦^¨ì­ìµo¥Í¿ù»~ªº³¯­z¦¡¤¤¡C
  34.    
  35. End Sub
½Æ»s¥N½X
  1. Private Sub CommandButton1_Click()
  2.   ChkFile
  3. End Sub
½Æ»s¥N½X
¾lÃþ±À.

ªí³æ³B²z¨t²Î3.2(PLS)-a2.zip (631.5 KB)

TOP

¦^´_ 14# jackyq
¶â...
¦]¬°§Ú¤j³£¬O¬Ý¤pÀ°¤â»P¥»¯¸¦Û¾Ç,
¦³®É¦£¨S¬Ý¨ìªº°Q½×¦ê´N¥u¯à¿ù¥¢¾Ç²ß¤F,

¦b¤pÀ°¤â¸Ìªº»¡©ú:
Dictionary ª«¥ó
  ´y­z
ª«¥ó¡A¥Î©óÀx¦s¸ê®ÆÃöÁä¦r©M¶µ¥Ø¹ï¡C
»yªk
Scripting.Dictionary
½Ðª`·N
Dictionary ª«¥ó»P PERL ¬ÛÃö°}¦C¥þµ¥¡C¥i¥H¬O¥ô¦ó«¬¦¡ªº¸ê®Æªº¶µ¥Ø³QÀx¦s¦b°}¦C¤¤¡C¨C­Ó¶µ¥Ø³£»P¤@­Ó°ß¤@ªºÃöÁä¦r¬ÛÃö¡C¸ÓÃöÁä¦r¥Î¨Ó¨ú¥X³æ­Ó¶µ¥Ø¡A³q±`¬O¾ã¼Æ©Î¦r¦ê¡A¥i¥H¬O°£°}¦C¥~ªº¥ô¦ó«¬ºA¡C
¤U­±ªºµ{¦¡½XÁ|¨Ò»¡©ú¤F¦p¦ó«Ø¥ß¤@­Ó Dictionary ª«¥ó¡G

Dim d                   '«Ø¥ß¤@­ÓÅܼÆ
Set d = CreateObject(Scripting.Dictionary)
d.Add "a", "Athens"     '¥[¤J¤@¨ÇÃöÁä¦r©M¶µ¥Ø
d.Add "b", "Belgrade"d.Add "c", "Cairo"
...


©Ò¥H,§Ú¤@ª½¾Ç¨ìªº³£¬O Dictionary ª«¥ó­n¥Î Variant ¸ê®Æ«¬ºA ¨Ó«Å§i,
¦­¥ý¬°¤F¸Ñ¨MÃþ¦üªº¿ù»~, Is Nothing, Is Null, = Null, .... ¸Õ¤F¤@°ï¤èªk¯Ó®É®À§é,
«á¨Ó¨Ä¨Äªº¥Î ¿ù»~³B²zµ{¦¡ ³B²z¤~¶¶§Q,
ÁÂÁ¤À¨É«ü¥¿.

TOP

¥»©«³Ì«á¥Ñ luhpro ©ó 2016-4-25 22:56 ½s¿è
¦^´_  luhpro
...
¥[¤W§Ú¦]¬°Åv­­ªºÃö«YµLªk¤U¸üªþÀÉ
...
chaoyiho µoªí©ó 2016-4-25 19:19

«x?
­è­è¬d¤F¥»ºô¯¸ªº»¡©ú ¤p¾Ç¥Í¦³ "¤U¸ü/¬d¬Ýªþ¥ó" ªºÅv­­­C,
§A¤£¯à¶Ü?



´£¨Ñ¥t¤@­Ó¤U¸üÂI :
http://www.FunP.Net/695648

§Úªº°ÝÃD¥D­n¦³¨â­Ó
1.¹Á¸Õ«e½ú¤W­±ªºµ{¦¡½X ¥i¯à¦]¬°¤£ª¾¹D¸Ó©ñ­þÃä¦Ó³y¦¨¿ù»~¶i¦ÓµLªk°õ¦æ

¦pªþºô§}ªºÀÉ®×,
¸Õ¸Õ¬Ý­Y¦³°ÝÃD¦A´£¥X.

2.Ãö©ó­«½Æ°Ê§@ªºµ{¦¡½XÁY´î

¥D­n¬O§â­«½Æªºµ{¦¡½X¿W¥ß¥X¨Ó©ñ¦b Module ¤º,
¥H Public Sub ³Q©I¥sµ{§Ç¦W()   °µ¶}ÀY(¦p¦¹¾ã­ÓÀɮ׳£¯à©I¥s¦¹µ{§Ç),
¦b½T«O¨C­Ó©I¥sÂI³£¤£·|¦]§ï¦¨¦¹©I¥s¦Ó¨«¼Ëªº±¡§Î¤U,
¥H©I¥s¦¹µ{§Çªºµ{¦¡½X¨ú¥N­ì­«½Æªºµ{¦¡½X.

¦n³B¬O©ö©óºûÅ@»P°»¿ù,
¤§«á­×§ïµ{¦¡¥u»ÝÅܰʦ¹µ{§Ç¤º®e,
¤¤Â_ÂI¤]¥u­n³]¦b¦¹µ{§Ç¤º§Y¥i.
¤£¥Î¤@­Ó¤@­Ó¥h´M§ä¤Î­×§ïµ{¦¡½X©Î³]¤¤Â_ÂI.

TOP

        ÀR«ä¦Û¦b : ºÉ¦h¤Ö¥»¥÷¡A´N±o¦h¤Ö¥»¨Æ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD