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

[µo°Ý] ¨Ì±ø¥ó¦X¨Ö¸ê®Æ

Sub test()
Dim Arr, Brr, xD, R&, i&, N&, T$, TY$, TR
Sheets("INVOICE").UsedRange.Offset(7, 0).EntireRow.Delete
Set xD = CreateObject("scripting.dictionary")
R = Sheets("B area").[G5000].End(xlUp).Row
Arr = Sheets("B area").Range("A7:X" & R)
ReDim Brr(1 To R, 1 To 9)
For i = 1 To UBound(Arr)
    T = Arr(i, 19):   R = xD(T):   If T = "" Then GoTo 101
    TY = Arr(i, 14) & "*" & Format(Arr(i, 7), "#,##0") & "pcs"  '®Æ¸¹*¥X³f¼Æ ¤å¦r¦ê, ¥i±N*§ï¬°ªÅ®æ
    If R = 0 Then
       N = N + 1: xD(T) = N: R = N
       Brr(N, 1) = N '§Ç¸¹
       Brr(N, 2) = "PKG"
       Brr(N, 3) = Arr(i, 17) '¥ó¼Æ
       Brr(N, 6) = Arr(i, 22) / Arr(i, 17) 'Unit Price (US$)
       Brr(N, 7) = Arr(i, 22) 'Amount (US$)
    End If
    Brr(R, 5) = Val(Brr(R, 5)) + Val(Arr(i, 7)) '¥X³f¼Æ(²Ö­p)
    Brr(R, 8) = Val(Brr(R, 8)) + Val(Arr(i, 8)) '²b­«(²Ö­p)
    Brr(R, 9) = Val(Brr(R, 9)) + Val(Arr(i, 9)) '¤ò­«(²Ö­p)
    '------------------------------------
    T = Replace(Replace(Brr(R, 4), "//", "("), ")", "") '¨ú±o­ì¤ÀÃþ¤å¦r
    If T = "" Then Brr(R, 4) = Arr(i, 14) & "//" & TY: GoTo 101
    TR = Split(T, "(")  '©î¸Ñ­ì¤ÀÃþ¤å¦r
    Brr(R, 4) = Trim(TR(0)) & " ( " & Trim(TR(1)) & ", " & TY & " )" '¤ÀÃþ(¥[µù)
101: Next i
If N = 0 Then Exit Sub
With Sheets("INVOICE").[C8].Resize(N, 9)
     .Value = Brr
     .Columns(4).Replace "//*", "", Lookat:=xlPart '­Y¬°³æµ§, ²M°£«á­±ªº¥[µù¤å¦r
     .Columns(4).WrapText = True '¦Û°Ê´«¦C
     .Columns(4).EntireRow.AutoFit '¦Û°Ê¦C°ª
     .Borders.LineStyle = 1  '®Ø½u
     Application.Goto .Item(1) '¸õ¦ÜINVOICE¤u§@ªí
End With
End Sub

test_v1.rar (29.79 KB)


============================

TOP

¦^´_ 3# jesscc

Sub test()
Dim Arr, Brr, xD, R&, i&, N&, T$, TY$, TR, xE As Range
Set xD = CreateObject("scripting.dictionary")
R = Sheets("B area").[G5000].End(xlUp).Row
Arr = Sheets("B area").Range("A7:X" & R)
ReDim Brr(1 To R, 1 To 9)
For i = 1 To UBound(Arr)
    T = Arr(i, 19):   R = xD(T):   If T = "" Then GoTo 101
    TY = Arr(i, 14) & "*" & Format(Arr(i, 7), "#,##0") & "pcs"  '®Æ¸¹*¥X³f¼Æ ¤å¦r¦ê, ¥i±N*§ï¬°ªÅ®æ
    If R = 0 Then
       N = N + 1: xD(T) = N: R = N
       'Brr(N, 1) = N '§Ç¸¹
       Brr(N, 2) = "PKG"
       Brr(N, 3) = Arr(i, 17) '¥ó¼Æ
       Brr(N, 6) = Arr(i, 22) / Arr(i, 17) 'Unit Price (US$)
       Brr(N, 7) = Arr(i, 22) 'Amount (US$)
    End If
    'Brr(R, 5) = Val(Brr(R, 5)) + Val(Arr(i, 7)) '¥X³f¼Æ(²Ö­p)
    'Brr(R, 8) = Val(Brr(R, 8)) + Val(Arr(i, 8)) '²b­«(²Ö­p)
    'Brr(R, 9) = Val(Brr(R, 9)) + Val(Arr(i, 9)) '¤ò­«(²Ö­p)
    '------------------------------------
    T = Replace(Replace(Brr(R, 4), "//", "("), ")", "") '¨ú±o­ì¤ÀÃþ¤å¦r
    If T = "" Then Brr(R, 4) = Arr(i, 14) & "//" & TY: GoTo 101
    TR = Split(T, "(")  '©î¸Ñ­ì¤ÀÃþ¤å¦r
    Brr(R, 4) = Trim(TR(0)) & " ( " & Trim(TR(1)) & ", " & TY & " )" '¤ÀÃþ(¥[µù)
101: Next i
If N = 0 Then Exit Sub
Set xE = Sheets("INVOICE").[D65536].End(xlUp)(2, 0)
With xE.Resize(N, 9)
     .Value = Brr
     .Columns(4).Replace "//*", "", Lookat:=xlPart '­Y¬°³æµ§, ²M°£«á­±ªº¥[µù¤å¦r
     .Columns(4).WrapText = True '¦Û°Ê´«¦C
     .Columns(4).EntireRow.AutoFit '¦Û°Ê¦C°ª
     .Borders.LineStyle = 1  '®Ø½u
     Application.Goto .Item(1) '¸õ¦ÜINVOICE¤u§@ªí
End With
End Sub


========================

TOP

        ÀR«ä¦Û¦b : §Ú­Ì­n°µ¦nªÀ·|ªºÀô«O¡A¤]­n°µ¦n¤º¤ßªºÀô«O¡C
ªð¦^¦Cªí ¤W¤@¥DÃD