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

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

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

¥»©«³Ì«á¥Ñ adam2010 ©ó 2013-7-6 17:43 ½s¿è

½Ð±Ð¦U¦ì°ª¤â¡A§Ú¦³¤@­ÓÀɮצb°µ§¹¥æ´Á·JÁ`¼Ï¯Ã¤ÀªRÂà­È«á(¦p¤U¹Ï)»Ý­n¥[¤J¥ÀÀÉ¡A¤£ª¾¬O§_¥i¼g¦¨¥¨¶°
¥[¤J¥ÀÀÉ­Ó³W«h¦p¤U~
¡°¥u­n®Æ¸¹¦³§À½X¤£µ¥©óXªº´N­n¦b¨º­Ó¸s²Õ¤U¤è¼W¥[¤@¦C¥ÀÀÉ(¦p¤U¬õ©³ªº§À½X=X)
¡°¥ÀÀɪº¥i¥Î®w¦s(Äx©³³¡¤À)=©Ò¦³¤lÀɪº¥i¥Î®w¦s+1300+¦b»s¶qNEW
¡°¥ÀÀɪºVAR(¦Ç©³)¤½¦¡¸ò¤lÀɩΨä¥L®Æ¸¹¬Û¦P=Á`­p-¥i¥Î®w¦sNEW(Á`­pªºÄæ¦ì¤£¬O©T©wªº¡A¦ý¬O¤@©w¦b³Ì¥kÃä)
¡°¥ÀÀɨC­Ó¤é´Á(¤é´Á¤£¬O³sÄòªº¡A¦Ó¥BÁ`Äæ¼Æ¤]¤£¤@©w)¼Æ¶q=©Ò¦³¤lÀɪº¥[Á`(¤ôÂÅ©³¦â)

¥[¤J«á¦p¤U~

¼W¥[¥ÀÀÉ°ÝÃD.rar (12.2 KB)
Adam

¦^´_ 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

·PÁÂGBKEE¤jªº¦^ÂСA§¹¥þ²Å¦X»Ý¨D
¦pªG§Ú·Q­n±N¥[¤Jªº¥ÀÀÉ¥[¤W©³¦â¥H¥Ü°Ï§O¬O¤£¬O¥[¦b²Ä18¦æ«á­±´N¥i¥H¤F¡AÁÂÁ¡I
Adam

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

·PÁÂGBKEE¤jªº¦^ÂСA³o¼Ë¥[ªº¸Ü©Ò¦³¤lÀÉ·|¦³©³¦â
§Ú¬O¦b¥ÀÀÉ¥[¤J«á¥[¤WÃC¦â¡AÀ³¸Ó¤]OK§a!               
  With Rng(1)
    .Cells = M & "X"
                   .Cells.Select
                   With Selection.Interior
                       .Color = vbGreen
                   End With         
                  
                   .Cells(1, "B") = .Cells(1, "B").Offset(-1)
                   .Cells(1, "C") = .Cells(1, "C").Offset(-1)
                   'ªu¥Î¤lÀɪº¦T§O&ºU­È

                  
                   .Cells(1, "H").Resize(1, R - 8) = "=SUM(R[-1]C:R[-" & Rng(2).Rows.Count & "]C)"
                   ' R - 8 :  Høó¨ì A1©¹¥k¨ì³Ì«á¦³¼Æ­ÈªºÄ渹 - 1øó
Adam

TOP

        ÀR«ä¦Û¦b : ·R¤£¬O­n¨D¹ï¤è¡A¦Ó¬O­n¥Ñ¦Û¨­ªº¥I¥X¡C
ªð¦^¦Cªí ¤W¤@¥DÃD