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

¶×¥X_¦ý¤£­«ÂжץXªº¸ê®Æ

¦^´_ 10# Hsieh


    ÁÂÁ¤j¤j~ °ÝÃD¸Ñ¨M¤F
        ¥u­n¦b¶×«e¸Ñ¶}(Unprotect)»P¶×«áÂê¤W´N¦n¤F(Protect)

   ¯u¬O·PÁ¤j¤j~ §Úªº¾ã¥÷³øªíºCºC±N§¹¦¨
¾Ç²ß¤~¯à´£¤É¦Û¤v

TOP

¦^´_ 10# Hsieh

   Dear ¤j¤j

   ¤p¤p¥d¼u¤¤,­Y¬Osheet[Data]¤¤¤w¦³¤@µ§¸ê,§Ú¸g¹L´ú¸Õ«á,¦b¬¡­¶[¿é¤J]´N¶×¤£¹L¥h¤F,
    °õ¦æªº®É­Ôµo²{¬O mystr1 = Join(Application.Index(ar, i)) ³o¦æ«ü¥O·|²£¥Í{°õ¦æ¶¥¬q¿ù»~"13" «¬ºA¤£²Å}
    ½Ð¤j¤j«ü¾É¤@¤U~

   °ÝÃD¦pªþ¥ó¤§½d¥» ¶×¥X_¦ý¤£­«ÂÐ_©µ¦ùÃD4.rar (12.54 KB)
¾Ç²ß¤~¯à´£¤É¦Û¤v

TOP

¦^´_ 12# hugh0620
¨º´N¨Ä¤@ÂI
  1. Private Sub CommandButton1_Click()

  2. Dim Ay()
  3. Set d = CreateObject("Scripting.Dictionary")
  4. With Sheet2
  5. .Unprotect "1234"


  6.     ar = .Range(.[B5], .[B65536].End(xlUp).Offset(, 2))
  7.         For i = 1 To UBound(ar, 1)
  8.             mystr1 = Join(Array(ar(i, 1), ar(i, 2), ar(i, 3)))
  9.             d(mystr1) = d.Count
  10.         Next

  11.     With Sheet1
  12.         ar = .Range(.[B5], .[B65536].End(xlUp).Offset(, 6))
  13.         For i = 1 To UBound(ar, 1)
  14.             mystr1 = Join(Array(ar(i, 1), ar(i, 2), ar(i, 6)))
  15.             If d.exists(mystr1) = False Then
  16.                 ReDim Preserve Ay(s)
  17.                 Ay(s) = Array(ar(i, 1), ar(i, 2), ar(i, 6), ar(i, 7))
  18.                 s = s + 1
  19.             End If
  20.         Next
  21.     End With
  22.     If s > 0 Then .[B65536].End(xlUp).Offset(1, 0).Resize(s, 4) = Application.Transpose(Application.Transpose(Ay))
  23.     .Protect "1234"

  24. End With

  25. End Sub
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 13# Hsieh


    Dear ¤j¤j~ ·P®¦~ ­ì¨Ó¥u­n§â¨º¦æµ{¦¡½X§ï¦¨arrayªº¤è¦¡´N¥i¥H¸Ñ¨M
         ¯uªº«Ü·PÁ§A~
¾Ç²ß¤~¯à´£¤É¦Û¤v

TOP

¦^´_ 13# Hsieh


     Dear ¤j¤j

         ­Y¬O­«ÂЪº¸ê®Æ,¦³¸ê®Æ¬OKEY IN¿ù»~,¦ý¬O¤w¸g«ö¤F¶×¥X¸ê®Æ,
             »Ý­n±N¨Ì¶×¥Xªº±ø¥óUPDATE¿ù°Èªº¦a¤è,½Ð¤j¤j«ü±Ð¤@¤U


          ªþ¥ó¬°°ÝÃD¤§½d¥» ¶×¥X_¦ý¤£­«ÂÐ_©µ¦ùÃD5 (­«Âиê®Æ§ó·s).rar (12.45 KB)
¾Ç²ß¤~¯à´£¤É¦Û¤v

TOP

¦^´_ 15# hugh0620
  1. Private Sub CommandButton1_Click()
  2. Dim Ay()
  3. Set d = CreateObject("Scripting.Dictionary")
  4. Set d1 = CreateObject("Scripting.Dictionary")
  5. With Sheet2
  6. .Unprotect "1234"
  7.     ar = .Range(.[B5], .[B65536].End(xlUp).Offset(, 2))
  8.         For i = 1 To UBound(ar, 1)
  9.             mystr1 = Join(Array(ar(i, 1), ar(i, 2), ar(i, 3)))
  10.             d(mystr1) = d.Count
  11.         Next
  12.     With Sheet1
  13.         ar = .Range(.[B5], .[B65536].End(xlUp).Offset(, 6))
  14.         For i = 1 To UBound(ar, 1)
  15.             mystr1 = Join(Array(ar(i, 1), ar(i, 2), ar(i, 6)))
  16.             If d.exists(mystr1) = False Then
  17.                 ReDim Preserve Ay(s)
  18.                 Ay(s) = Array(ar(i, 1), ar(i, 2), ar(i, 6), ar(i, 7))
  19.                 s = s + 1
  20.                 Else
  21.                 d1(mystr1) = ar(i, 7)
  22.             End If
  23.         Next
  24.     End With
  25.     For Each a In .Range(.[B5], .[B65536].End(xlUp))
  26.       mystr1 = Join(Array(a, a.Offset(, 1), a.Offset(, 2)))
  27.       a.Offset(, 3) = d1(mystr1)
  28.     Next
  29.     If s > 0 Then .[B65536].End(xlUp).Offset(1, 0).Resize(s, 4) = Application.Transpose(Application.Transpose(Ay))
  30.     .Protect "1234"
  31. End With
  32. End Sub
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 16# Hsieh


    ¤j¤j~ ¦]¬°¿é¤é¤¶­±·|¨C¤é¤@ª½¿é¤J~ ­Y¬O³o¼Ë
   ´ú¸Õ«áªºµ²ªG·|¦³¤@­Ó°ÝÃD~ ´N¬O¦pªG²Ä1¦¸(¨Ì¤é´Á:²Ä1¤Ñ)¿é¤J~ «ö¶×¥X«á~ DATA·|±a¥X¼Æ¶q~
    ¦ý¬O~ ²Ä2¦¸(¨Ì¤é´Á:²Ä2¤Ñ)¿é¤J~ «ö¶×¥X«á~ DATA·|±a¥X²Ä2¦¸¿é¤Jªº¼Æ¶q~ ¦ý¬O²Ä¤@¦¸¿é¤Jªº¼Æ¶q·|¤£¨£~>.<
¾Ç²ß¤~¯à´£¤É¦Û¤v

TOP

¦^´_ 17# hugh0620


    §A¤£¬O§Æ±æÂмg¶Ü?
·íµM¤ñ¹ï¨ì­«½Æªº´N³Q·sªº¨ú¥Nªü
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 18# Hsieh

    ¤j¤j©úŲ
    Âмgªº³¡¥÷°w¹ïªº¬O[¦P¤@¤Ñ]¥B[¦P¤@­ÓCPO]¥B[¦P¤@²Õ]ªº±ø¥ó¤U¶i¦æÂмgDATA¦P¼Ëªº¸ê®Æ
   ­Y¬O[¤£¦P¤Ñ]©Î[¤£¦PCPO]©Î[¤£¦P²Õ]´N»Ý­n·s¼W¸ê®Æ¨ìDATA
¾Ç²ß¤~¯à´£¤É¦Û¤v

TOP

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2023-3-15 20:20 ½s¿è

¦^´_ 11# hugh0620
¦^´_ 16# Hsieh


    ÁÂÁ½׾Â,ÁÂÁ«e½ú
«á¾ÇÂǦ¹©«¾Ç²ß¨ì«Ü¦hª¾ÃÑ,¥H¤U¤ß±oµù¸Ñ,½Ð«e½ú¦A«ü¾É

Option Explicit
Sub TEST()
Dim Ay(), d, d1, ar, i, a, s, mystr1
'¡ô«Å§iÅܼÆ:Ay¬O°}¦C,¨ä¾l¬°³q¥Î«¬ÅܼÆ
Set d = CreateObject("Scripting.Dictionary")
'¡ô¥Od¬O ¦r¨å
Set d1 = CreateObject("Scripting.Dictionary")
'¡ô¥Od1¤]¬O ¦r¨å
With Sheet2
'¡ô¥H¤U¬OÃö©óSheet2¤u§@ªíªºµ{§Ç (Dataªí)
   .Unprotect "1234"
   '¡ô¥O¥H"1234"±K½X¨ú®ø«OÅ@¤u§@ªí
   ar = .Range(.[B5], .[B65536].End(xlUp).Offset(, 2))
   '¡ô¥OarÅܼƬO¤Gºû°}¦C,¥H[B5]¨ì(BÄæ³Ì«á¤@­Ó¦³¤º®eÀx¦s®æ,
   '¦A¦V¥k°¾²¾2Ä檺Àx¦s®æ),¦¹½d³òÀx¦s®æ­È±a¤Jar°}¦C¤¤

   For i = 1 To UBound(ar, 1)
   '¡ô³]¶¶°j°é!i±q1¨ì arÁa¦V³Ì¤j¯Á¤Þ¦C¸¹
      mystr1 = Join(Array(ar(i, 1), ar(i, 2), ar(i, 3)))
      '¡ô¥Omystr1ÅܼƬO¥H ªÅ¥Õ¦r¤¸³sµ²°}¦C¤l­Èªº·s¦r¦ê
      '°}¦C¤l­È:i°j°é¼Æªº(1,2,3)Äæar°}¦C­È

      d(mystr1) = d.Count
      '¡ô¥O¥Hmystr1ÅܼƷíkey,item¬O d¦r¨åkey¼Æ¶q(PS:°_©l­È¬O0),¯Ç¤Jd¦r¨å
   Next
   With Sheet1
   '¡ô¥H¤U¬OÃö©óSheet1¤u§@ªíªºµ{§Ç (¿é¤Jªí)
      ar = .Range(.[B5], .[B65536].End(xlUp).Offset(, 6))
      '¡ô¥OarÅܼƸ˷s¸ê®Æ:
      '¥Oar¬O¤Gºû°}¦C,¥H[B5]¨ì(BÄæ³Ì«á¤@­Ó¦³¤º®eÀx¦s®æ,
      '¦A¦V¥k°¾²¾6Ä檺Àx¦s®æ),¦¹½d³òÀx¦s®æ­È±a¤Jar°}¦C¤¤

      For i = 1 To UBound(ar, 1)
      '¡ô³]¶¶°j°é!i±q1¨ì arÁa¦V³Ì¤j¯Á¤Þ¦C¸¹
         mystr1 = Join(Array(ar(i, 1), ar(i, 2), ar(i, 6)))
         '¡ô¥Omystr1ÅܼƬO¥H ªÅ¥Õ¦r¤¸³sµ²°}¦C¤l­Èªº·s¦r¦ê
         '°}¦C¤l­È:i°j°é¼Æªº(1,2,6)Äæar°}¦C­È

         If d.exists(mystr1) = False Then
         '¡ô¦pªG¬dd¦r¨å¸Ì¨S¦³ mystr1ÅÜ¼Æ key
            ReDim Preserve Ay(s)
            '¡ô¥OAy°}¦CÂX¥R¦C¼Æ¨ì¯Á¤Þ¸¹s(PS:s°_©l­È¬O0)
            Ay(s) = Array(ar(i, 1), ar(i, 2), ar(i, 6), ar(i, 7))
            '¡ô¥OsÅܯÁ¤Þ¸¹Ay°}¦C­È¬O¤@ºû°}¦C,¥Hi°j°é¦Car°}¦C¤l­È(1,2,6,7)±a¤J
            s = s + 1
            '¡ô¥OsÅܼƲ֥[ 1
            Else
               d1(mystr1) = ar(i, 7)
               '¡ô§_«h¥O¥Hmystr1ÅܼƬ°key,item¬Oi°j°é¦C²Ä7Äæar°}¦C­È,¯Ç¤Jd1¦r¨å¤¤
         End If
      Next
   End With
   For Each a In .Range(.[B5], .[B65536].End(xlUp))
   '¡ô³]³v¶µ°j°é!¥Oa¬O (Dataªí[B5]¨ì BÄæ³Ì«á¤@­Ó¦³¤º®eÀx¦s®æ)³o½d³òÀx¦s®æ¤§¤@
      mystr1 = Join(Array(a, a.Offset(, 1), a.Offset(, 2)))
      '¡ô¥Omystr1ÅܼƬO¥H ªÅ¥Õ¦r¤¸³sµ²°}¦C¤l­Èªº·s¦r¦ê
      '°}¦C¤l­È:aÅܼƭÈ,aÅܼƩ¹¥k°¾²¾1®æªºÀx¦s®æ­È,aÅܼƩ¹¥k°¾²¾2®æªºÀx¦s®æ­È

      a.Offset(, 3) = d1(mystr1)
      '¡ô¥OaÅܼƩ¹¥k°¾²¾3®æªºÀx¦s®æ­È¬O ¥Hmystr1ÅܼƬdd1¦r¨åªºitem­È
   Next
   If s > 0 Then
   '¡ô¦pªGsÅܼƤj©ó 0?
      .[B65536].End(xlUp).Offset(1, 0).Resize(s, 4) = _
      Application.Transpose(Application.Transpose(Ay))
      '¡ô¥ODataªíBÄæ²Ä1ªÅ¥Õ®æÂX®i¦V¤Us1ÅܼƦC,¦V¥kÂX®i4Äæ,
      '³oÂX®i½d³òÀx¦s®æ­È¥HAy°}¦CÂà¸m¨â¦¸ªº­È±a¤J

   End If
   .Protect "1234"
   '¡ô¥O¥H"1234"±K½X«OÅ@Dataªí
End With
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

        ÀR«ä¦Û¦b : ­×¦æ­nô½t­×¤ß¡AÂǨƽm¤ß¡AÀH³B¾i¤ß¡C
ªð¦^¦Cªí ¤W¤@¥DÃD