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

[µo°Ý] ´¡³æ«á¦Û°Ê±Æ§Ç»P§ó·s±Æµ{§Ç¸¹

[µo°Ý] ´¡³æ«á¦Û°Ê±Æ§Ç»P§ó·s±Æµ{§Ç¸¹

¦U¦ì½×¾Â«e½ú¦n
¥H¤Uªº¾Ç²ß¤è®×½Ð¦U¦ì«e½ú´£¨Ñ«Øij,ÁÂÁ¦U¦ì
20230719_2.zip (12.81 KB)

­ì©l±Æµ{:


¦bB6Àx¦s®æ¿é¤J 1 «á§ó·sµ²ªG:



Option Explicit
Dim xA As Range, Brr, Z, T0$, V%
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
   If .Column <> 2 Or .Row = 1 Or .Count > 1 Then Exit Sub
   Set xA = Range([D2], [a65536].End(3))
   If Not Intersect(.Cells, xA) Is Nothing Then
      Brr = xA: T0 = .Cells(1, 0): V = .Value
   End If
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Crr, V1%, T1$, i&, Q%, T$, TT$, S$, SS$, N%
With Target
   If .Column <> 2 Or .Row = 1 Or .Count > 1 Then Exit Sub
   If Not Intersect(.Cells, xA) Is Nothing Then
      T1 = .Cells(1, 0): V1 = .Value
      For i = 1 To UBound(Brr)
         If Brr(i, 1) = T0 Then
            If Brr(i, 2) = V Then
               Brr(i, 2) = V1
               ElseIf Brr(i, 2) >= V And Brr(i, 2) <= V1 Then
               Brr(i, 2) = Brr(i, 2) - 1
               Else
               If Brr(i, 2) + Q = V1 Then Q = Q + 1
               Brr(i, 2) = Brr(i, 2) + Q
            End If
         End If
      Next
      With xA
         .Value = Brr
         .Sort KEY1:=.Item(1), Order1:=1, _
           Key2:=.Item(2), Order2:=1, Header:=2
      End With
      Crr = xA
      For i = 1 To UBound(Crr)
          T = Crr(i, 1): TT = T & "\" & Crr(i, 2)
          N = N * -(T = S) - (TT <> SS)
          S = T: SS = TT
          Crr(i, 2) = N
      Next
      xA = Crr
   End If
End With
Set xA = Nothing: Erase Brr, Crr
End Sub

ÁÂÁ½׾Â
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

        ÀR«ä¦Û¦b : «Ý¤H°h¤@¨B¡A·R¤H¼e¤@¤o¡A´N·|¬¡±o«Ü§Ö¼Ö¡C
ªð¦^¦Cªí ¤W¤@¥DÃD