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

[µo°Ý] ¦Û°Ê¥[¤J¥ÀÀÉ

¦^´_ 1# adam2010
¸Õ¸Õ¬Ý
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng(1 To 2) As Range, M As String, R As Integer
  4.     With ActiveSheet
  5.         Set Rng(1) = .Range("A2")                                               'ª«¥ó: A2Àx¦s®æ
  6.         R = .[A1].End(xlToRight).Column                                         '¼Æ­È: A1©¹¥k¨ì³Ì«á¦³¼Æ­ÈªºÄ渹
  7.         Do
  8.             If InStrRev(Rng(1), "X") <> Len(Rng(1)) And M = "" Then             'Àx¦s®æ¥kÃä²Ä¤@­Ó¦r¦ê<>"X" ¥B M = ""
  9.                 M = Mid(Rng(1), 1, Len(Rng(1)) - 1)                             'M = ¥h±¼Àx¦s®æ¥kÃä²Ä¤@­Ó¦r¦êªº¦r¦ê
  10.                 Set Rng(2) = Rng(1)                                             'ª«¥ó Rng(2) :²Ä1 ­Ó¤lÀɦì¸m
  11.             ElseIf M <> "" And Rng(1) = M & "X" Then                            'Àx¦s®æ¥kÃä²Ä¤@­Ó¦r¦ê="X"
  12.                 M = ""                                                          '¬O¥ÀÀÉ : M=""
  13.             ElseIf M <> "" And M <> Mid(Rng(1), 1, Len(Rng(1)) - 1) Then        'Ū§¹¬Û¦Pªº¤lÀÉ
  14.                 Rng(1).EntireRow.Insert                                         '¨Ï¥Î´¡¤J¤èªk,Rng(1)·|¤U²¾
  15.                 Set Rng(1) = Rng(1).Offset(-1)                                  '¥ÀÀɪº¦ì¸m
  16.                 Set Rng(2) = Range(Rng(1).Offset(-1), Rng(2))                   '©Ò¦³¤lÀɪº½d³ò
  17.                 With Rng(1)
  18.                     .Cells = M & "X"
  19.                     .Cells(1, "H").Resize(1, R - 8) = "=SUM(R[-1]C:R[-" & Rng(2).Rows.Count & "]C)"
  20.                     ' R - 8 :  Høó¨ì A1©¹¥k¨ì³Ì«á¦³¼Æ­ÈªºÄ渹 - 1øó
  21.                     .Cells(1, "H").Resize(1, R - 8) = .Cells(1, "H").Resize(1, R - 8).Value
  22.                     .Cells(1, R) = Application.Sum(.Cells(1, 8).Resize(1, R - 8))
  23.                     .Cells(1, "D") = Application.Sum(Rng(2).Range("D1:F" & Rng(2).Rows.Count))
  24.                     .Cells(1, "G") = .Cells(1, "D") - .Cells(1, R)
  25.                 End With
  26.                 M = ""
  27.             End If
  28.             Set Rng(1) = Rng(1).Offset(1)                                           'ª«¥ó Rng(1)²¾©¹¤U¤@¦C
  29.         Loop Until Rng(1) = ""
  30.     End With
  31. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 3# adam2010
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng(1 To 2) As Range, M As String, R As Integer
  4.     With ActiveSheet
  5.         Set Rng(1) = .Range("A2")                                               'ª«¥ó: A2Àx¦s®æ
  6.         R = .[A1].End(xlToRight).Column                                         '¼Æ­È: A1©¹¥k¨ì³Ì«á¦³¼Æ­ÈªºÄ渹
  7.         Do
  8.             If InStrRev(Rng(1), "X") <> Len(Rng(1)) And M = "" Then             'Àx¦s®æ¥kÃä²Ä¤@­Ó¦r¦ê<>"X" ¥B M = ""
  9.                 M = Mid(Rng(1), 1, Len(Rng(1)) - 1)                             'M = ¥h±¼Àx¦s®æ¥kÃä²Ä¤@­Ó¦r¦êªº¦r¦ê
  10.                 Set Rng(2) = Rng(1)                                             'ª«¥ó Rng(2) :²Ä1 ­Ó¤lÀɦì¸m
  11.             ElseIf InStrRev(Rng(1), "X") = Len(Rng(1)) Then                     '¬O¥ÀÀÉ
  12.                 Rng(1).Resize(1, R).Interior.Color = vbGreen                    '***¥[¤J©³¦â
  13.                 M = ""                                                          '¬O¥ÀÀÉ : M=""
  14.             ElseIf M <> "" And M <> Mid(Rng(1), 1, Len(Rng(1)) - 1) Then        'Ū§¹¬Û¦Pªº¤lÀÉ
  15.                 Rng(1).EntireRow.Insert                                         '¨Ï¥Î´¡¤J¤èªk,Rng(1)·|¤U²¾
  16.                 Set Rng(1) = Rng(1).Offset(-1)                                  '¥ÀÀɪº¦ì¸m
  17.                 Set Rng(2) = Range(Rng(1).Offset(-1), Rng(2))                   '©Ò¦³¤lÀɪº½d³ò
  18.                 With Rng(1)
  19.                     .Resize(1, R).Interior.Color = vbGreen                      '***¥[¤J©³¦â
  20.                     .Cells = M & "X"
  21.                     .Cells(1, "H").Resize(1, R - 8) = "=SUM(R[-1]C:R[-" & Rng(2).Rows.Count & "]C)"
  22.                     ' R - 8 :  Høó¨ì A1©¹¥k¨ì³Ì«á¦³¼Æ­ÈªºÄ渹 - 1øó
  23.                     .Cells(1, "H").Resize(1, R - 8) = .Cells(1, "H").Resize(1, R - 8).Value
  24.                     .Cells(1, R) = Application.Sum(.Cells(1, 8).Resize(1, R - 8))
  25.                     .Cells(1, "D") = Application.Sum(Rng(2).Range("D1:F" & Rng(2).Rows.Count))
  26.                     .Cells(1, "G") = .Cells(1, "D") - .Cells(1, R)
  27.                 End With
  28.                 M = ""
  29.             End If
  30.             Set Rng(1) = Rng(1).Offset(1)                                           'ª«¥ó Rng(1)²¾©¹¤U¤@¦C
  31.         Loop Until Rng(1) = ""
  32.     End With
  33. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : ¡i®É¶¡¦pÆp¥Û¡j®É¶¡¹ï¤@­Ó¦³´¼¼zªº¤H¦Ó¨¥¡A´N¦pÆp¥Û¯ë¬Ã¶Q¡F¦ý¹ï·M¤H¨Ó»¡¡A«o¹³¬O¤@§âªd¤g¡A¤@ÂI»ù­È¤]¨S¦³¡C
ªð¦^¦Cªí ¤W¤@¥DÃD