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

½Ð°Ý³W«h02F - 04F ¦pªG¦bData Base ¿z¿ï¦b³o­Ó½d³ò内ªº¬ÛÃö¸ê®Æ

¦^´_ 32# 198188


¤u§@ªí¦WºÙ¥u¯à¦³31­Ó¦r¤¸,­Y¶W¹L¦p¦ó³B²z?
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 34# 198188


    ¥H¤U½Ð¥ý¸Õ¸Õ¬Ý

Option Explicit
Sub TEST()
Dim Arr, Brr, Crr(1 To 10000, 1 To 18), A, V, Z, Q, S, i&, j%, R&, C%, y%, K, X%, T$, T1$, T2$, T3$, T4$, T5$, Rk$, W, L
Application.ScreenUpdating = False
Set Z = CreateObject("Scripting.Dictionary")
Brr = [Rule!A1].CurrentRegion
For j = 2 To 8
   T = Trim(Mid(Brr(2, j), 1, Len(Brr(2, j)) * 2 - LenB(StrConv(Brr(2, j), vbFromUnicode)) - 2))
   For i = 3 To UBound(Brr)
      If Brr(i, j) <> "" Then Z(Brr(i, j) & "|") = T: Exit For
   Next
Next
For i = 3 To UBound(Brr)
   For j = 11 To 28
      If Brr(i, j) = "" Then
         If j = 12 Then
            Z("/" & Brr(i, 9) & "/") = Brr(i, 11)
         End If
         Exit For
      End If
      Z("/" & Brr(i, j) & "/") = Brr(i, 9)
      Z("/" & Brr(i, j) & "//") = Brr(i, 10)
   Next
Next
For i = 3 To UBound(Brr)
      T = Brr(i, 9)
      Rk = ""
      For j = 2 To 8
         Rk = Rk & Brr(i, j)
      Next
      S = Brr(i, 1)
      Z(T & "\" & Rk) = S
      Z(S & "/UR") = Sheets(S).[A65536].End(3)(2).Row
      Z(S & "/UC") = Sheets(S).Cells(Z(S & "/UR") - 1, 256).End(xlToLeft).Column
Next
Arr = Sheets("Material").UsedRange
For i = 2 To UBound(Arr)
   Z(Arr(i, 3) & "/m") = i
Next
Brr = Range(Sheets("Part List").[M1], Sheets("Part List").[A65536].End(3))
For i = 2 To UBound(Brr)
   T5 = Left(Brr(i, 1), 2)
   T = Z("/" & T5 & "/")
   T4 = Z("/" & Left(Brr(i, 1), 2) & "//")
   Rk = Brr(i, 7)
   T2 = Z(T & "\" & Rk)
   T3 = T & "-" & Z(Rk & "|")
   If Len(T3) > 31 Then
      T3 = T4 & "-" & Z(Rk & "|")
      If Len(T3) > 31 Then
         T3 = T5 & "-" & Rk
      End If
   End If
   Z("|" & T3) = T2
   A = Z("/" & T3)
   R = Z("r/" & T3)
   If Not IsArray(A) Then
      A = Crr
   End If
   If T2 = "Bom" Then
      R = R + 1
      A(R, 1) = R
      A(R, 2) = Brr(i, 1)
      A(R, 3) = Brr(i, 12)
      If A(R, 3) <> "" Then
         A(R, 4) = Arr(Z(A(R, 3) & "/m"), 5)
         A(R, 5) = Arr(Z(A(R, 3) & "/m"), 6)
         A(R, 6) = Arr(Z(A(R, 3) & "/m"), 7)
         A(R, 8) = Arr(Z(A(R, 3) & "/m"), 11)
         A(R, 9) = Arr(Z(A(R, 3) & "/m"), 10)
         A(R, 13) = Arr(Z(A(R, 3) & "/m"), 8)
      End If
      A(R, 7) = Brr(i, 4) & " x " & Brr(i, 5)
      A(R, 10) = Brr(i, 3)
      A(R, 18) = Brr(i, 7)
      GoTo i01
   End If
   If T2 = "Gasket" Then
      R = R + 1
      A(R, 1) = R
      A(R, 2) = Brr(i, 1)
      A(R, 9) = Brr(i, 3)
      A(R, 6) = Brr(i, 5)
      A(R, 7) = Brr(i, 6)
      A(R, 11) = Brr(i, 7)
      A(R, 3) = Brr(i, 12)
      If A(R, 3) <> "" Then
         A(R, 4) = Arr(Z(A(R, 3) & "/m"), 5)
         A(R, 5) = Arr(Z(A(R, 3) & "/m"), 6)
         A(R, 8) = Arr(Z(A(R, 3) & "/m"), 8)
      End If
      GoTo i01
   End If
   If T2 = "Structural" Then
      R = R + 1
      A(R, 1) = R
      A(R, 2) = Brr(i, 1)
      A(R, 3) = Brr(i, 2)
      A(R, 5) = Brr(i, 3)
      L = Split(Brr(i, 2) & "mm", "mm")(0)
      W = Split(Brr(i, 2) & "mm", "mm")(1)
      L = Val(StrReverse(Mid(Val(StrReverse(L & 1)), 2)))
      W = Val(StrReverse(Mid(Val(StrReverse(W & 1)), 2)))
      A(R, 6) = L * W
      A(R, 8) = A(R, 5) * A(R, 6) / 1000
      A(R, 7) = Application.RoundUp(A(R, 5) * A(R, 6) / 1000, 0)
      GoTo i01
   End If
   If T2 = "DN Material" Then '
      R = R + 1
      A(R, 1) = R
      A(R, 2) = Brr(i, 1)
      A(R, 3) = Brr(i, 12)
      A(R, 4) = Brr(i, 5)
      A(R, 7) = Brr(i, 3)
      If A(R, 3) <> "" Then
         A(R, 5) = Arr(Z(A(R, 3) & "/m"), 11)
         A(R, 6) = Arr(Z(A(R, 3) & "/m"), 8)
         A(R, 6) = A(R, 5) * A(R, 7)
      End If
      A(R, 9) = Brr(i, 7)
      GoTo i01
   End If
   If T2 = "Fabrication Extrusion" Then
      R = R + 1
      A(R, 1) = R
      A(R, 2) = Brr(i, 1)
      A(R, 3) = Brr(i, 11)
      A(R, 4) = Brr(i, 10)
      A(R, 5) = Brr(i, 4)
      A(R, 6) = Brr(i, 3)
      A(R, 7) = Brr(i, 1)
      If A(R, 7) Like "*-*-*" Then
         Q = Split(A(R, 7), "-")
         A(R, 7) = Q(0) & "-" & Q(1)
      End If
      A(R, 8) = Brr(i, 7)
   End If
i01: Z("/" & T3) = A
   Z("r/" & T3) = R
Next
Brr = Range(Sheets("Frame per Dwg").[M1], Sheets("Frame per Dwg").[A65536].End(3))
For i = 2 To UBound(Brr)
   T = Z("/" & Left(Brr(i, 2), 2) & "/")
   T4 = Z("/" & T & "/")
   Rk = Brr(i, 6)
   T2 = Z(T & "\" & Rk)
   T3 = T4 & "-" & Z(Rk & "|")
   Z("|" & T3) = T2
   A = Z("/" & T3)
   R = Z("r/" & T3)
   If Not IsArray(A) Then
      A = Crr
   End If
   If T2 = "Finish" Then
      R = R + 1
      A(R, 1) = R
      A(R, 2) = Brr(i, 2)
      A(R, 3) = Brr(i, 3)
      A(R, 4) = Brr(i, 4)
      A(R, 5) = Brr(i, 5)
      A(R, 7) = Brr(i, 6)
   End If
   Z("/" & T3) = A
   Z("r/" & T3) = R
Next
Workbooks.Add
Q = ActiveWorkbook.Name
For Each K In Z.Keys
   If IsArray(Z(K)) And Z("r" & K) > 0 Then
      T = Mid(K, 2)
      ThisWorkbook.Sheets(Z("|" & T)).Copy Before:=Workbooks(Q).Sheets(1)
      ActiveSheet.Name = T
      With Cells(Z(Z("|" & T) & "/UR"), 1).Resize(Z("r" & K), Z(Z("|" & T) & "/UC"))
         .Value = Z(K)
         .Borders.LineStyle = xlContinuous
      End With
   End If
Next
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 36# 198188


    ¥i¯à­ì¦]:Materialªí¸ê®Æ¤£§¹¾ã
Part ListªíL(¨ÑÀ³°Ó½s¸¹) ¦b MaterialªíCÄæ§ä¤£¨ì  ¬ÛÀ³ªº(¨ÑÀ³°Ó½s¸¹)
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2025-10-23 14:44 ½s¿è

¦^´_ 38# 198188


    ¸Ì­±¦³3¦æ:    If A(R, 3) <> "" Then
³£¸m´«¦¨:    If A(R, 3) <> "" And Z.Exists(A(R, 3) & "/m") Then
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 40# 198188


    §Ú´ú¸Õ Part Listªí2000¦C »Ý­n60¬í
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 41# 198188


    ¨S¦³¹ê»Ú¤j¶q¸ê®Æ½d¨Ò°µ´ú¸Õ,¥u¯à«ØÄ³¦Û¦æ º¥¶i¼W¥[¸ê®Æ¶q°µ´ú¸Õ
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 40# 198188


    °}¦C¦b¦r¨å©I¥s¥X¨Ó»P ¸Ó°}¦C©ñ¦^¦r¨å¸Ì»Ý­n®É¶¡,¸ê®Æ¶q¤ÖÁÙ¥i¥H,¦ý¤j¸ê®Æ¶q¦pªG­nÁYµu®É¶¡:
²z½×¤W¬O¥i¥H»²§UÄæ¨ú AÄæ¥[¤u¥ó½s¸¹«e2½X»P GÄæ³Æª`°µ2¼h±Æ§Ç,¨Ã­×§ï°j°éªº¹B¦æ¤è¦¡,À³¸Ó¥i¥HÁYµu®É¶¡
«á¾Ç¦A¼·ªÅ¬ã¨s¬Ý¬Ý
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 45# 198188


    ¤Ó¿N¸£¤F,©ñ°²«á¦A¼·ªÅ¤U¸ü¸Õ¸Õ
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2025-10-27 15:39 ½s¿è

¦^´_ 45# 198188


    ¥H¤U¤è®×½Ð¸Õ¸Õ¬Ý:

Option Explicit
Dim A, Z, R&, W, L, i&, Brr, Mrr, Q, Drr
Sub TEST()
Dim Arr, Crr(1 To 100000, 1 To 18), V, xW$, S, j%, C%, y%, K, X%, T$, T1$, T2$, T3$, T4$, T5$, Ts
Ts = Timer
Application.ScreenUpdating = False
Set Z = CreateObject("Scripting.Dictionary")
Brr = [Rule!A1].CurrentRegion
For i = 3 To UBound(Brr)
   For j = 2 To 8
      T = Brr(i, j)
      If T <> "" Then
         If Z(T & "|") = "" Then
            T1 = Trim(Mid(Brr(2, j), 1, Len(Brr(2, j)) * 2 - LenB(StrConv(Brr(2, j), vbFromUnicode)) - 2))
            Z(T & "|") = T1
         End If
         Exit For
      End If
   Next
   For j = 11 To 28
      If Brr(i, j) = "" Then Exit For
      T2 = Brr(i, 11) & "-" & T
      Z(Brr(i, j) & "-" & T) = T2
      If Z(T2 & "/") = "" Then Z(T2 & "/") = Brr(i, 9) & "-" & Z(T & "|")
      S = Brr(i, 1)
      Z(T2 & "/s") = S
      Z(S & "/UR") = Sheets(S).[A65536].End(3)(2).Row
      Z(S & "/UC") = Sheets(S).Cells(Z(S & "/UR") - 1, 256).End(xlToLeft).Column
   Next
Next
Mrr = Sheets("Material").UsedRange
For i = 2 To UBound(Mrr)
   Z(Mrr(i, 3) & "/m") = i
Next
If Sheets("Part List").FilterMode = True Then Sheets("Part List").ShowAllData
With Range(Sheets("Part List").[P1], Sheets("Part List").[A65536].End(3)(2))
   With .Columns(15): .Cells = "=ROW()": .Value = .Value: End With
   Brr = .Value
   ReDim Arr(1 To UBound(Brr) - 1, 1 To 1)
   For i = 2 To UBound(Brr)
      T = Left(Brr(i, 1), 2) & "-" & Brr(i, 7)
      If InStr("Y-O", Right(T, 1)) Then Arr(i - 1, 1) = Z(T)
   Next
   .Cells(2, 16).Resize(UBound(Brr) - 1, 1) = Arr
   .Sort KEY1:=.Item(16), Order1:=1, Header:=1
   Brr = .Value
   .Sort KEY1:=.Item(15), Order1:=1, Header:=1
   .Cells(1, 15).Resize(, 2).EntireColumn.Delete
   A = Crr
   For i = 2 To UBound(Brr) - 1
      If Brr(i, 16) = "" Then Exit For
      T = Brr(i, 16)
      R = R + 1: A(R, 1) = R: Run Replace(Z(T & "/s"), " ", "_")
      If Brr(i, 16) <> Brr(i + 1, 16) Then
         If xW = "" Then
            Workbooks.Add
            xW = ActiveWorkbook.Name
         End If
         ThisWorkbook.Sheets(Z(Brr(i, 16) & "/s")).Copy Before:=Workbooks(xW).Sheets(1)
         ActiveSheet.Name = T
         With Cells(Z(Z(T & "/s") & "/UR"), 1).Resize(R, Z(Z(T & "/s") & "/UC"))
            .Value = A
            .Borders.LineStyle = xlContinuous
         End With
         A = Crr
         R = 0
      End If
   Next
End With
ThisWorkbook.Activate
If Sheets("Frame per Dwg").FilterMode = True Then Sheets("Frame per Dwg").ShowAllData
With Range(Sheets("Frame per Dwg").[I1], Sheets("Frame per Dwg").[A65536].End(3)(2))
   With .Columns(8): .Cells = "=ROW()": .Value = .Value: End With
   Drr = .Value
   ReDim Arr(1 To UBound(Drr) - 1, 1 To 1)
   For i = 2 To UBound(Drr)
      T = Left(Drr(i, 2), 2) & "-" & Drr(i, 6)
      If InStr("WT", Right(T, 1)) Then Arr(i - 1, 1) = Z(T)
   Next
   .Cells(2, 9).Resize(UBound(Drr) - 1, 1) = Arr
   .Sort KEY1:=.Item(9), Order1:=1, Header:=1
   Drr = .Value
   .Sort KEY1:=.Item(8), Order1:=1, Header:=1
   .Cells(1, 8).Resize(, 2).EntireColumn.Delete
   A = Crr: R = 0
   For i = 2 To UBound(Drr) - 1
      If Drr(i, 9) = "" Then Exit For
      T = Drr(i, 9)
      R = R + 1: A(R, 1) = R: Run Replace(Z(T & "/s"), " ", "_")
      If Drr(i, 9) <> Drr(i + 1, 9) Then
         If xW = "" Then
            Workbooks.Add
            xW = ActiveWorkbook.Name
         End If
         ThisWorkbook.Sheets(Z(Drr(i, 9) & "/s")).Copy Before:=Workbooks(xW).Sheets(1)
         ActiveSheet.Name = T
         With Cells(Z(Z(T & "/s") & "/UR"), 1).Resize(R, Z(Z(T & "/s") & "/UC"))
            .Value = A
            .Borders.LineStyle = xlContinuous
         End With
         A = Crr
         R = 0
      End If
   Next
End With
Set Z = Nothing
Erase Arr, Brr, Crr, Drr, A, Mrr
MsgBox "¦@¯Ó®É¡G" & Timer - Ts & " ¬í"
End Sub

Sub Bom()
A(R, 2) = Brr(i, 1)
A(R, 3) = Brr(i, 12)
If A(R, 3) <> "" And Z.Exists(A(R, 3) & "/m") Then
   A(R, 4) = Mrr(Z(A(R, 3) & "/m"), 5)
   A(R, 5) = Mrr(Z(A(R, 3) & "/m"), 6)
   A(R, 6) = Mrr(Z(A(R, 3) & "/m"), 7)
   A(R, 8) = Mrr(Z(A(R, 3) & "/m"), 11)
   A(R, 9) = Mrr(Z(A(R, 3) & "/m"), 10)
   A(R, 13) = Mrr(Z(A(R, 3) & "/m"), 8)
End If
A(R, 7) = Brr(i, 4) & " x " & Brr(i, 5)
A(R, 10) = Brr(i, 3)
A(R, 18) = Brr(i, 7)
End Sub

Sub Gasket()
A(R, 2) = Brr(i, 1)
A(R, 9) = Brr(i, 3)
A(R, 6) = Brr(i, 5)
A(R, 7) = Brr(i, 6)
A(R, 11) = Brr(i, 7)
A(R, 3) = Brr(i, 12)
If A(R, 3) <> "" And Z.Exists(A(R, 3) & "/m") Then
   A(R, 4) = Mrr(Z(A(R, 3) & "/m"), 5)
   A(R, 5) = Mrr(Z(A(R, 3) & "/m"), 6)
   A(R, 8) = Mrr(Z(A(R, 3) & "/m"), 8)
End If
End Sub

Sub Structural()
A(R, 2) = Brr(i, 1)
A(R, 3) = Brr(i, 2)
A(R, 5) = Brr(i, 3)
L = Split(Brr(i, 2) & "mm", "mm")(0)
W = Split(Brr(i, 2) & "mm", "mm")(1)
L = Val(StrReverse(Mid(Val(StrReverse(L & 1)), 2)))
W = Val(StrReverse(Mid(Val(StrReverse(W & 1)), 2)))
A(R, 6) = L * W
A(R, 8) = A(R, 5) * A(R, 6) / 1000
A(R, 7) = Application.RoundUp(A(R, 5) * A(R, 6) / 1000, 0)
End Sub

Sub DN_Material()
A(R, 2) = Brr(i, 1)
A(R, 3) = Brr(i, 12)
A(R, 4) = Brr(i, 5)
A(R, 7) = Brr(i, 3)
If A(R, 3) <> "" And Z.Exists(A(R, 3) & "/m") Then
   A(R, 5) = Mrr(Z(A(R, 3) & "/m"), 11)
   A(R, 6) = Mrr(Z(A(R, 3) & "/m"), 8)
   A(R, 8) = A(R, 5) * A(R, 7)
End If
A(R, 9) = Brr(i, 7)
End Sub

Sub Fabrication_Extrusion()
A(R, 2) = Brr(i, 1)
A(R, 3) = Brr(i, 11)
A(R, 4) = Brr(i, 10)
A(R, 5) = Brr(i, 4)
A(R, 6) = Brr(i, 3)
A(R, 7) = Brr(i, 1)
If A(R, 7) Like "*-*-*" Then
   Q = Split(A(R, 7), "-")
   A(R, 7) = Q(0) & "-" & Q(1)
End If
A(R, 8) = Brr(i, 7)
End Sub

Sub Finish()
A(R, 2) = Drr(i, 2)
A(R, 3) = Drr(i, 3)
A(R, 4) = Drr(i, 4)
A(R, 5) = Drr(i, 5)
A(R, 7) = Drr(i, 6)
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 51# 198188


    "«e­±Part List ©â¨ú¸ê®Æ³¡¤À"  ¬O­þ¤@¼Ó¼h¤è®×¤£²Å¦X»Ý¨D?
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

        ÀR«ä¦Û¦b : ¤@­Ó¤Hªº§Ö¼Ö¡D¤£¬O¦]¬°¥L¾Ö¦³±o¦h¡A¦Ó¬O¦]¬°¥L­p¸û±o¤Ö¡C
ªð¦^¦Cªí ¤W¤@¥DÃD