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

[µo°Ý] ®Ú¾Ú"®Æ¸¹Äæ"¬°¨Ì¾Ú,°µ±Æ§Ç

¥»©«³Ì«á¥Ñ °a¤ªºµ ©ó 2021-4-8 17:01 ½s¿è

¦^´_ 1# PJChen
¦³ªÅÀ°§Ú¸Õ¸Õ¬Ý¬O¤£¬O§A­nªºµ²ªG ·|«ÜºC¦]¬°°j°é¤Ó¦h¤F ¬Ý¬Ý¦³¨S¦³¤j¤jÄ@·NÀ°¦£ ·PÁÂ
  1. Public Sub ¸ó¤u§@ï¤ñ¹ï¨Ã²¾°Ê½m²ß()
  2.     Application.ScreenUpdating = False
  3.    
  4.     Sheets.Copy After:=Sheets(Sheets.Count)
  5.     For X = [H65535].End(3).Row To 1 Step -1
  6.         If IsError(Cells(X, "H")) Then
  7.             Rows(X).Delete
  8.         End If
  9.     Next X
  10.     Range([A65535].End(3), [A4]).Sort [A4], 1, Header:=2
  11.    
  12.    
  13.     Set xD = CreateObject("Scripting.Dictionary")
  14.     Arr = Range([A65535].End(3), [A1])
  15.    
  16.     Application.DisplayAlerts = False
  17.     Sheets(Sheets.Count).Delete
  18.     Application.DisplayAlerts = True
  19.    
  20.     For X = 1 To UBound(Arr, 1)
  21.             xD(Arr(X, 1)) = Trim(xD(Arr(X, 1)) & " " & X)
  22.     Next X
  23.     Erase Arr
  24.    
  25.     A = Dir("T:\0_¦Û­qªí³æ\¤é±`ªí®æ\*.xlsx")
  26.     Workbooks.Open "T:\0_¦Û­qªí³æ\¤é±`ªí®æ\" & A & ""
  27.     Set W = Workbooks("°Ó«~2.xlsm").Sheets(1)
  28.    
  29.     For E = 1 To Sheets.Count
  30.         N = Sheets(E).Name: Sheets(E).Activate
  31.         If IsNumeric(N) Then
  32.             If Int(N) > W.[M2] Then Exit For
  33.             If Int(N) >= W.[M1] And Int(N) <= W.[M2] Then
  34.                 Arr = ActiveSheet.UsedRange
  35.                 For X = 1 To UBound(Arr, 1)
  36.                     For Y = 1 To UBound(Arr, 2)
  37.                         If Arr(X, Y) = "®Æ¸¹" Then
  38.                             Brr = Range(Cells(1, Y), Cells(Rows.Count, Y).End(3))
  39.                             GoTo A01
  40.                         End If
  41.                     Next Y
  42.                 Next X
  43. A01:            Y = Y: Erase Arr
  44.                
  45.                 For Each D In xD
  46.                 SR = Split(xD(D), " ")
  47.                     For Each S In SR
  48.                         SInt = Int(S)
  49.                         For Z = UBound(Brr) To 1 Step -1
  50.                         On Error Resume Next
  51.                             If D <> Empty Then
  52.                                 If D = Brr(Z, 1) Then
  53.                                     Rows(Z).Cut
  54.                                     Rows(SInt).Insert , 1
  55.                                     Brr = Range(Cells(1, Y), Cells(Rows.Count, Y).End(3))
  56.                                     Exit For
  57.                                 End If
  58.                             End If
  59.                         On Error GoTo 0
  60.                         Next Z
  61.                     Next S
  62.                 Next D
  63.         
  64.             End If
  65.         End If
  66.     Next E
  67.    
  68.     Application.ScreenUpdating = True
  69. End Sub
½Æ»s¥N½X
°Ó«~20408.rar (38.23 KB)

TOP

¦^´_ 4# PJChen

    For E = 1 To Sheets.Count
        N = Sheets(E).Name: Sheets(E).Activate
        If IsNumeric(N) Then
            If Int(N) > W.[M2] Then Exit For
            If Int(N) >= W.[M1] And Int(N) <= W.[M2] Then
¥i¥H§ï¦¨
    For E = 1 To Sheets.Count
        Sheets(E).Activate
        If E > W.[M2] Then Exit For
        If E >= W.[M1] And E <= W.[M2] Then

³o¬q
    For X = [H65535].End(3).Row To 1 Step -1
        If IsError(Cells(X, "H")) Then
            Rows(X).Delete
        End If
    Next X
    Range([A65535].End(3), [A4]).Sort [A4], 1, Header:=2

¬O¥Î HÄæ °µ±Æ§Ç«áªº¨Ì¾Ú ¦]¬°¥i¥H±Æ°£¨S¦³ªº¸ê®Æ
©ÎµÛ §A¥i¥H§ï¦¨

    Sheets.Copy After:=Sheets(Sheets.Count)
    For X = [H65535].End(3).Row To 1 Step -1
        If IsError(Cells(X, "A")) Then
            Rows(X).Delete
        End If
    Next X
    Range([A65535].End(3), [A4]).Sort [A4], 1, Header:=2
¨ä¹ê¤]¨S®t ¦]¬° If D = Brr(Z, 1) Then ¤w¸g¥i¥H¸õ¹L¤F

§Ú¦³µy·L­×§ï¤F¤@¤U³o¬q

            For Each D In xD
                SR = Split(xD(D), " ")
                For Each S In SR
                    SInt = Int(S)
                    If D = Empty Then Exit For
                    With Range(Cells(1, Y), Cells(Rows.Count, Y).End(3))
                        On Error Resume Next
                        Set C = .Find(D)
                        G = .FindNext(C).Address
                        If C = D Then
                            If Not C Is Nothing Then
                                Rows(C.Row).Cut
                                Set C = .FindNext(G)
                                Rows(SInt).Insert , 1
                            End If
                        End If
                        On Error GoTo 0
                    End With
                Next S
            Next D


¦ýÁÙ¬O«ÜºC ..¦pªG¸ê®Æ¶q¤j·|«D±`ºC... .¬Ý¬Ý¦³¨S¦³¤j¤j¥i¥HÀ°¦£

TOP

¦^´_ 6# PJChen

¦³ªÅ¦AÀ°§Ú¸Õ¸Õ¬Ý¬O¤£¬O§A­nªºµ²ªGÁÂÁÂ
  1. Public Sub ¸ó¤u§@ï¤ñ¹ï¨Ã²¾°Ê½m²ß0409()
  2.     Application.ScreenUpdating = False
  3.     '·s¼W¤@­Ó¤u§@ªí±Æ¦C«á ¦s¨ì°}¦C¦b§R°£¤u§@ªí
  4.     Sheets.Copy After:=Sheets(Sheets.Count)
  5.     Range([A65535].End(3), [A4]).Sort [A4], 1, Header:=2

  6.     Set xD = CreateObject("Scripting.Dictionary")
  7.     Arr = Range([A65535].End(3), [A1])
  8.    
  9.     Application.DisplayAlerts = False
  10.     Sheets(Sheets.Count).Delete
  11.     Application.DisplayAlerts = True
  12. '--------------------------------------------------------
  13.     '§â±Æ¦C«áªº¸ê®Æ¦s¨ì¦r¨å¸Ì
  14.     For X = 1 To UBound(Arr, 1)
  15.         xD(Arr(X, 1)) = Trim(xD(Arr(X, 1)) & " " & X)
  16.     Next X
  17.     Erase Arr
  18. '--------------------------------------------------------
  19.     '´M§äÀɮתº¦ì¸mµM«á¶}±Ò
  20.     A = Dir(ThisWorkbook.Path & "\" & "*.xlsx")
  21.     Workbooks.Open ThisWorkbook.Path & "\" & A
  22. '--------------------------------------------------------
  23.     '¤Á´«¨ì«ü©w¤u§@ªí §â§t¦³"®Æ¸¹"ªº¨º¤@Äæ¦ì¸m°O¤U¨Ó
  24.     Sheets("¾ã¤ë²Î­p").Activate '³o¸Ì¥i¥H«ü©w­n±Æ¦Cªº¤u§@ªíªº¦ì¸m "¾ã¤ë²Î­p" ©Î "3"
  25.     Arr = ActiveSheet.UsedRange
  26.     For X = 1 To UBound(Arr, 1)
  27.         For Y = 1 To UBound(Arr, 2)
  28.             If Arr(X, Y) = "®Æ¸¹" Then
  29.                 Y = Y
  30.                 X = X + 1
  31.                 GoTo A01
  32.             End If
  33.         Next Y
  34.     Next X
  35. A01: Erase Arr
  36. '--------------------------------------------------------
  37.     '´M§ä¤ñ¹ï«á¨Ã­«·s±Æ¦C
  38.     For Each D In xD
  39.         SR = Split(xD(D), " ")
  40.         For Each S In SR
  41.             If D = Empty Then Exit For
  42.             With Range(Cells(1, Y), Cells(Rows.Count, Y).End(3))
  43.                 On Error Resume Next
  44.                 Set C = .Find(D)
  45.                 G = .FindNext(C).Address
  46.                 If C = D Then
  47.                     If Not C Is Nothing Then
  48.                         Rows(C.Row).Cut
  49.                         Set C = .FindNext(G)
  50.                         K = K + 1
  51.                         Rows(X + K).Insert , 1
  52.                     End If
  53.                 End If
  54.                 Application.CutCopyMode = False
  55.                 On Error GoTo 0
  56.             End With
  57.         Next S
  58.     Next D
  59.     Set C = Nothing
  60.    
  61.     Application.ScreenUpdating = True
  62. End Sub
½Æ»s¥N½X
0409.rar (287.7 KB)

TOP

¦^´_ 8# PJChen


§Ú¥H¬°§A­n­«·s±Æ¦C ©Ò¥H¤~·|¥[¤J³o¬q
    '·s¼W¤@­Ó¤u§@ªí±Æ¦C«á ¦s¨ì°}¦C¦b§R°£¤u§@ªí
§â³o¨Ç§R°£¦A¸Õ¸Õ¬Ý ¬O¤£¬O§A­nªºµ²ªG ·PÁÂ
'    Sheets.Copy After:=Sheets(Sheets.Count)
'    Range([A65535].End(3), [A4]).Sort [A4], 1, Header:=2

    Set xD = CreateObject("Scripting.Dictionary")
    Arr = Range([A65535].End(3), [A1])
   
'    Application.DisplayAlerts = False
'    Sheets(Sheets.Count).Delete
'    Application.DisplayAlerts = True

«O¯d
    Set xD = CreateObject("Scripting.Dictionary")
    Arr = Range([A65535].End(3), [A1])

TOP

¦^´_ 10# PJChen

§Ú¦³­×§ï¹L¤F  ¦³ªÅ¦AÀ°§Ú¸Õ¸Õ¬Ý ¦æ¤£¦æ ·PÁÂ

RR0412.rar (300.22 KB)

TOP

¦^´_ 12# PJChen

§ï¦n¤F ¦³ªÅ¦A¬Ý¬Ý¬O¤£¬O§A­nªºµ²ªG ·PÁÂ
R0413.rar (401.45 KB)

TOP

¦^´_ 14# PJChen
§Ú¤]¤£ª¾¹D F5 ªº°ÝÃD >"<     ¦³ªÅ¦bÀ°§Ú¸Õ¸Õ¬Ý ÁÙ¦³¨S¦³°ÝÃD ·PÁÂ

R0413_1.rar (402.34 KB)

TOP

¦^´_ 16# PJChen

¥i¥H§â­n­×§ïªº ¨BÆJ¼g¥X¨Ó

TOP

¦^´_ 16# PJChen

¦³ªÅ¦AÀ°§Ú¸Õ¸Õ¬Ý ¬O¤£¬O§A­nªºµ²ªG ·PÁÂ

R0415.rar (411.68 KB)

TOP

¦^´_ 16# PJChen

³o¬O¦³¥[¤J¦h­Ó¬¡­¶Ã¯´`Àô©M³æ¤@¬¡­¶Ã¯¬Ý­n¥Î­þ¤@­Ó  ¬Ý¬Ý³o¼Ë¦æ¤£¦æ ¤]³\¥i¥H¦s¦¨¼W¯q¶°
0415_1.rar (22.33 KB)

TOP

        ÀR«ä¦Û¦b : ¦³´¼¼z¤~¯à¤À¿ëµ½´c¨¸¥¿¡F¦³Á¾µê¤~¯à«Ø¥ß¬üº¡¤H¥Í¡C
ªð¦^¦Cªí ¤W¤@¥DÃD