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

[µo°Ý] Excel ½s¸¹¡B¤À²Õ½s¸¹¦Û°Ê§ó§ï°ÝÃD?

[µo°Ý] Excel ½s¸¹¡B¤À²Õ½s¸¹¦Û°Ê§ó§ï°ÝÃD?

¶}©l®É

1.jpg
2019-8-4 08:10

½Ð°Ý¦³¤èªk¦b¨C¤@¦¸ÀH¾÷§R°£¦C¼Æ¤§«á
¤À²Õ½s¸¹¯à¦Û°Ê§ó§ï¶Ü¡H
¨Ò¦p¡G·í§R°£2¡B3¦C¡B¤À²Õ½s¸¹¯à¦Û°Ê§ó§ï¦¨¤U¹Ï¶Ü?

§R°£«á

2.jpg
2019-8-4 08:25

½s¸¹§Ú¨Ï¥Î=ROW()-1
¦³°ª¤â¥i¥HÀ°¦£¤@¤U¶Ü? ÁÂÁ®@!!
¦³VBA µ{¦¡½s·PÁ¸U¤À

½Ð¤j¤jÀ°¦£

TOP

§Aªº¤À²Õ½s¸¹ÅÞ¿è¬O?

TOP

§Aªº¤À²Õ½s¸¹¬O¨S¦³³W«ßªº¶Ü?

TOP

¤@¦~«eªº¤å§A°Ý¥L¥L·|»¡......§Ú¤£°O±o¤F

TOP

«¢¡AÀ³¸Ó¦­§Ñ¤F
¥Lªº·N«ä¬O­ì¨Óªº¤À²Õ½s¸¹B2=1, B3=1
§R°£¾ã¦C«á¡A§Æ±æ­ì¨Ó¤À²Õ½s¸¹B4:B6¥Ñ222, Åܦ¨B2:B4=111¡A¦]¬°«e­±¨S¦³1¤F
¥Î¤â¾÷¦^¤å¤âÃä¨S¹q¸£¡A¦³ªÅ¨Ó¸Õ¤@¤U¬Ý«ç»ò¹ê²{

TOP

¦^´_ 1# §ÚªÎ¤H


    ÁÂÁ«e½úµoªí¦¹¥DÃD»P½d¨Ò
«á¾ÇÂǦ¹©«½m²ß°}¦C»P¦r¨å,¾Ç²ß¨ì«Ü¦hª¾ÃÑ»P¸gÅç,¸Ñ¨M¤è®×¦p¤U,
½Ð«e½ú°Ñ¦Ò,½Ð¦U¦ì«e½ú«ü±Ð

°õ¦æ«e:  5~7 ªÅ6
20230323-1.jpg
2023-3-23 08:20


°õ¦æµ²ªG:
20230323-2.jpg
2023-3-23 08:20


§R°£2.3¦C: «e«á³£¦³ªÅ
20230323-3.jpg
2023-3-23 08:21


°õ¦æµ²ªG:
20230323-4.jpg
2023-3-23 08:22


Option Explicit
Sub TEST_1()
Dim Brr, Y, i&, X&, xR As Range
'¡ô«Å§iÅܼÆ:(Brr,Y)¬O³q¥Î«¬ÅܼÆ,(i,X)¬Oªø¾ã¼ÆÅܼÆ,
'xR¬OÀx¦s®æÅܼÆ

Set xR = Range([B1], Cells(Rows.Count, "A").End(3))
'¡ô¥OxR³oÀx¦s®æÅܼƬO [B1]¨ìAÄæ³Ì«á¦³¤º®eÀx¦s®æ,
'xRÅܼƬO¦¹½d³òªºÀx¦s®æ(ª«¥ó)

Brr = xR
'¡ô¥OBrr³o³q¥Î«¬ÅܼƬO ¤Gºû°}¦C,
'¥HxRÀx¦s®æ­È±a¤JBrr°}¦C¤¤

Set Y = CreateObject("Scripting.Dictionary")
'¡ô¥OY³o³q¥Î«¬ÅܼƬO ¦r¨å
For i = 2 To UBound(Brr)
'¡ô³]¶¶°j°é!i±q2¨ì Brr°}¦CÁa¦V³Ì¤j¯Á¤Þ¦C¸¹
   Y(Brr(i, 2)) = "": Brr(i, 1) = i - 1
   '¡ô¥Oi°j°é¦C²Ä2ÄæBrr°}¦C­È·íkey,item¬OªÅ¦r¤¸,¯Ç¤JY¦r¨å¸Ì,
   '¥Oi°j°é¦C²Ä1ÄæBrr°}¦C­È¬O iÅܼÆ-1

Next
For X = 1 To Y.Count
'¡ô³]¶¶°j°é!i±q1¨ì Y¦r¨åkey¼Æ¶q¼Æ
   For i = 2 To UBound(Brr): Y(Brr(i, 2)) = "": Next
   '¡ô³]¶¶°j°é!i±q2¨ì Brr°}¦CÁa¦V³Ì¤j¯Á¤Þ¦C¸¹,
   '¥Oi°j°é¦C²Ä2ÄæBrr°}¦C­È·íkey,item¬OªÅ¦r¤¸,¯Ç¤JY¦r¨å¸Ì

   If Y.Exists(X) = Empty Then
   '¡ô¦pªGY¦r¨å¸Ì¨S¦³XÅܼƳokey?
      For i = 2 To UBound(Brr)
      '¡ô³]¶¶°j°é!i±q2¨ì Brr°}¦CÁa¦V³Ì¤j¯Á¤Þ¦C¸¹
         If Brr(i, 2) > X Then Brr(i, 2) = Brr(i, 2) - 1
         '¡ô¦pªGi°j°é¦C²Ä2ÄæBrr°}¦C­È¤j©ó XÅܼÆ!
         '´N¥Oi°j°é¦C²Ä2ÄæBrr°}¦C­È -1

      Next
      X = X - 1
      '¡ô¥OXÅÜ¼Æ -1
   End If
   Y.RemoveAll
   '¡ô¥OY¦r¨å²MªÅ
Next
xR.Offset(, 3) = Brr
'¡ô¥OxRÅܼƦV¥k°¾²¾3Ä檺½d³òÀx¦s®æ­È¥HBrr°}¦C­È±a¤J
Set Y = Nothing: Erase Brr: Set xR = Nothing
'¡ô¥OÄÀ©ñÅܼÆ
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

        ÀR«ä¦Û¦b : ¤H¥Í¤£¤@©w²y²y¬O¦n²y¡A¦ý¬O¦³¾ú½mªº±j¥´ªÌ¡AÀH®É³£¥i¥H´§´Î¡C
ªð¦^¦Cªí ¤W¤@¥DÃD