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

[µo°Ý] ½Ð±Ð ¥H¦r¨å§ì¨ú²Å¦X±ø¥ó¸ê®Æ«á¿é¥X

1.·íDATA©Ò¦b¦a=½LÂIªíB2®É¡C
__B2©³¤UÁÙ¦³¨ä¥¦"©Ò¦b¦a", «ç¸Ñ??

2.­Y¹J¨ì°]²£½s¸¹¬Û¦PªÌ¡A¥u¦C¥XÀY¤@µ§¡C
__¥u¦C¤@µ§, ­n¤£­n²Ö­p?

3.±N¦U©Ò¦b¦a¤§¸ê®Æ¤À§O¿é¥X¡A¥H¤À­¶°Ï¤À¡C
__­Y¦P¤@©Ò¦b¦a, ¸ê®Æ¦æ¼Æ¤Ó¦h, ¦C¦L¶W¹L¤@­¶, «ç¸Ñ??

TOP

­Y¸ê®Æ¦h, ¥B¨C©Ò¦b¦aªº¶µ¥Ø¤£¶W¹L999ºØ, ¥i°Ñ¦Ò¦¹¤èªk:
©ñ¦b¦P¤@­¶, ¨C©Ò¦b¦a©³¤U¥["¤À­¶½u", ¨Ï¥Î¹wÄý§Y¥i©ú¥Õ:
Xl0000031-1.rar (50.32 KB)

TOP

¦Aµo¤@ª©--¯Â¿z¿ï½Æ»s¦Ü¦U¤Àªí:
Xl0000031-2.rar (55.71 KB)

TOP

¤Öºâ¤@¦æ:
.Rows(1).Resize(.Rows.Count ).Copy xS.[a4]
§ï¦¨
.Rows(2).Resize(.Rows.Count - 1).Copy xS.[a4]

TOP

¦^´_ 18# shuo1125

Sub TEST_A4()
Dim Arr, Brr, Cr, xD, vD, i&, j%, R&, K, T1$, T2$, TT$, N&, V%, xA As Range
tm = Timer
Call ²M°£
Set xD = CreateObject("Scripting.Dictionary")
Set vD = CreateObject("Scripting.Dictionary")
Arr = Range([DATA!at1], [DATA!a65536].End(xlUp))
For i = 2 To UBound(Arr)
    If Arr(i, 46) <> "" Then GoTo i01   
    T1 = Arr(i, 11): T2 = Arr(i, 6): TT = T1 & T2
    If T1 = "" Or T2 = "" Or xD(TT) > 0 Then GoTo i01
    If xD(T1) = 0 Then Set vD(T1) = CreateObject("Scripting.Dictionary")
    xD(T1) = 1: xD(TT) = 1: vD(T1)(i) = ""
i01: Next i
'--------------------------------
Application.ScreenUpdating = False
Set xA = [½LÂIªí!A1]: Cr = Array(1, 3, 6, 8, 10, 14, 13, 12)
For Each K In vD.keys
    R = vD(K).Count: N = N + 1
    ReDim Brr(1 To R + 1, 1 To 10)
    For i = 1 To R
        V = vD(K).keys()(i - 1)
        Brr(i + 1, 5) = "¤p­p¡G": Brr(i + 1, 8) = Brr(i, 8) + Arr(V, 12)
        For j = 1 To 8:  Brr(i, j) = Arr(V, Cr(j - 1)): Next
    Next i
    [½LÂIªí!A1:j3].Copy xA
    xA(2, 2) = K: xA(2, 10) = "­¶¦¸¡G" & N & "/" & vD.Count
    [½LÂIªí!a4:j4].Copy xA(4).Resize(R, 10)
    xA(4).Resize(R + 1, 10).Value = Brr
    Set xA = xA(R + 5): xA.PageBreak = xlPageBreakManual '³]©w¤À­¶½u
Next
MsgBox Timer - tm
End Sub

TOP

¦^´_ 21# shuo1125

    For i = 1 To R
        V = vD(K).keys()(i - 1)
        Brr(i + 1, 5) = "¤p­p¡G": Brr(i + 1, 8) = Brr(i, 8) + Arr(V, 12)
        For j = 1 To 8:  Brr(i, j) = Arr(V, Cr(j - 1)): Next
        Brr(i, 10) = "¤f¤H­û ¤f¦aÂI ¤f¥\¯à"
    Next i

TOP

¦^´_ 23# shuo1125

Sub TEST_A4()
Dim Arr, Brr, Cr, xD, vD, i&, j%, R&, K, T1$, T2$, TT$, N&, V%, xA As Range
tm = Timer
Call ²M°£
Set xD = CreateObject("Scripting.Dictionary")
Set vD = CreateObject("Scripting.Dictionary")
Arr = Range([DATA!at1], [DATA!a65536].End(xlUp))
For i = 2 To UBound(Arr)
    If Arr(i, 46) <> "" Then GoTo i01
    T1 = Arr(i, 11): T2 = Arr(i, 6): TT = T1 & T2
    If T1 = "" Or T2 = "" Or xD(TT) > 0 Then GoTo i01
    If xD(T1) = 0 Then Set vD(T1) = CreateObject("Scripting.Dictionary")
    xD(T1) = 1: xD(TT) = 1: vD(T1)(i) = ""
i01: Next i
'--------------------------------
Application.ScreenUpdating = False
Set xA = [½LÂIªí!A1]: Cr = Array(1, 3, 6, 8, 10, 14, 13, 12)
For Each K In vD.keys
    R = vD(K).Count: N = N + 1
    ReDim Brr(1 To R + 1, 1 To 10)
    For i = 1 To R
        V = vD(K).keys()(i - 1)
        Brr(i + 1, 5) = "¤p­p¡G": Brr(i + 1, 8) = Brr(i, 8) + Arr(V, 12)
        For j = 1 To 8:  Brr(i, j) = Arr(V, Cr(j - 1)): Next
        Brr(i, 10) = "¤f¤H­û ¤f¦aÂI ¤f¥\¯à"
    Next i
    [½LÂIªí!A1:j3].Copy xA
    xA(2, 2) = K: xA(2, 10) = "­¶¦¸¡G" & N & "/" & vD.Count
    [½LÂIªí!a4:j4].Copy xA(4).Resize(R, 10)
    xA(4).Resize(R + 1, 10).Value = Brr
    Set xA = xA(R + 5): xA.PageBreak = xlPageBreakManual '³]©w¤À­¶½u
Next
MsgBox Timer - tm
End Sub

TOP

¦^´_ 23# shuo1125


Sub TEST_A1()
Dim Arr, Brr(1 To 999, 1 To 10), Crr, xD, i&, j%, T1$, T2$, TT$, R&, N&, xA As Range
tm = Timer
Call ²M°£
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([DATA!at1], [DATA!a65536].End(xlUp))
For i = 2 To UBound(Arr)
    If Arr(i, 46) <> "" Then GoTo i01
    T1 = Arr(i, 11): T2 = Arr(i, 6): TT = T1 & "|" & T2
    If T1 = "" Or T2 = "" Or xD(TT) > 0 Then GoTo i01
    Crr = xD(T1 & "/c"): xD(TT) = 1: xD(T1) = xD(T1) + 1
    If Not IsArray(Crr) Then Crr = Brr: N = N + 1: xD(N) = T1
    For j = 1 To 8
        Crr(xD(T1), j) = Arr(i, Array(1, 3, 6, 8, 10, 14, 13, 12)(j - 1))
    Next j
    Crr(xD(T1), 10) = "¤f¤H­û ¤f¦aÂI ¤f¥\¯à"
    xD(T1 & "/s") = xD(T1 & "/s") + Arr(i, 12) '¼Æ¶q¤p­p
    xD(T1 & "/c") = Crr
i01: Next i
'--------------------------------
Application.ScreenUpdating = False
Set xA = [½LÂIªí!A1]
For i = 1 To N
    If i > 1 Then [½LÂIªí!A1:j3].Copy xA
    T1 = xD(i): R = xD(T1): Crr = xD(T1 & "/c")
    xA(2, 2) = T1: xA(2, 10) = "­¶¦¸¡G" & i & "/" & N
    With xA(4).Resize(R, 10)
         [½LÂIªí!a4:j4].Copy .Cells
         .Value = Crr
    End With
    xA(R + 4, 5) = "¤p­p": xA(R + 4, 8) = xD(T1 & "/s")
    Set xA = xA(R + 5)
    xA.PageBreak = xlPageBreakManual '³]©w¤À­¶½u
Next i
Set xD = Nothing: Erase Arr, Brr, Crr
MsgBox Timer - tm
End Sub

TOP

¥»©«³Ì«á¥Ñ ­ã´£³¡ªL ©ó 2022-2-13 14:55 ½s¿è

¦^´_ 27# shuo1125

³oºØ¦C¦L¤èªk, «D±`³Â·Ð, ¥u¥H¥Ø«eªº¦C¦L³]©w¬°·Ç, ªí­º3¦æ+ªí¨­27¦æ--¬°¤@­¶,
­Y¦³ÅÜ°Ê, ¦Û¦æ¥h½Õ¾ã(¥ý½Õ¾ã¦C¦L³]©w, ¦A¥h§ìªí¨­¦æ¼Æ)
Xl0000261-1.rar (678.25 KB)

¦C¦L³]©w¦pªG©ñ¦bµ{¦¡¤¤, ³t«×·|Åܱo«Ü¤[, ¦³®É¤[¨ì¹³·í¾÷, ³Ì¦nÁקK, À³¤â°Ê¨Æ¥ý³]¦n³]º¡~~Åýµ{¦¡¥u³B²z¼Æ¾Ú´N¦n
µ{¦¡¼W¥[¤TÄ滲§U(°õ¦æ«á¦Û°Ê²M°£)--§@¬°±Æ§Ç¤Îªí­º+­¶¦¸ªº³B²z, §_«h°õ¦æ¤ÓºC~~

TOP

¦^´_ 30# shuo1125

µy§ï
Xl0000068.rar (29.5 KB)

TOP

        ÀR«ä¦Û¦b : ¤Hªº²´·úªø¦b«e­±¡A¥u¬Ý¨ì§O¤Hªº¯ÊÂI¡Aµ·²@¬Ý¤£¨ì¦Û¤vªº¯ÊÂI¡C
ªð¦^¦Cªí ¤W¤@¥DÃD