Board logo

¼ÐÃD: ½Ð°Ý³W«h02F - 04F ¦pªG¦bData Base ¿z¿ï¦b³o­Ó½d³ò内ªº¬ÛÃö¸ê®Æ [¥´¦L¥»­¶]

§@ªÌ: 198188    ®É¶¡: 2025-10-5 16:17     ¼ÐÃD: ½Ð°Ý³W«h02F - 04F ¦pªG¦bData Base ¿z¿ï¦b³o­Ó½d³ò内ªº¬ÛÃö¸ê®Æ

[attach]38095[/attach][attach]38096[/attach][attach]38097[/attach]

½Ð°Ý¦pªG³W«h¬O02F - 04F ©ÎªÌ¦h­Ó¼Ó¼h¡A¦pªG¦bData Base ¿z¿ï¦b³o­Ó½d³ò内ªº¬ÛÃö¸ê®Æ¡C
¦p¹Ï¤@¡A¹Ï¤G¡A¹Ï¤T
ªþ¤WExcel Data Base & ·Q­nªºµ²ªG¤Î³W«h¡C
§@ªÌ: 198188    ®É¶¡: 2025-10-5 16:20

[attach]38101[/attach][attach]38102[/attach][attach]38103[/attach]
§@ªÌ: hcm19522    ®É¶¡: 2025-10-6 11:19

B2=VLOOKUP($A2,'[Data Base.xlsx]WO No'!$A:$K,COLUMN(B1),)
§@ªÌ: 198188    ®É¶¡: 2025-10-6 11:36

¥»©«³Ì«á¥Ñ 198188 ©ó 2025-10-6 11:38 ½s¿è

[attach]38104[/attach]
B2=VLOOKUP($A2,'[Data Base.xlsx]WO No'!$AK,COLUMN(B1),)
hcm19522 µoªí©ó 2025-10-6 11:19


³o­Ó¦}«D§Úªº°ÝÃD­n¨D¡C
§Ú·N«ä¬O»¡¡A
§Ú¿é¤J02F-04F ¡]¹Ï1)
´N·|¦Û°Ê©â¨ú Layout Dwg ªíùØÄæ B ¼Ó¼hÄÝ©ó³o­Ó 02F - 04F ½d³ò内ªº¸ê®Æ¥X¨Ó ¡]¹Ï3¡^

§Ú¿é¤J03F-08F¡]¹Ï1)
´N·|¦Û°Ê©â¨ú Layout Dwg ªíùØÄæ B ¼Ó¼hÄÝ©ó³o­Ó 03F - 08F ½d³ò内ªº¸ê®Æ¥X¨Ó¡]¹Ï3¡^
§@ªÌ: 198188    ®É¶¡: 2025-10-8 09:11

¥»©«³Ì«á¥Ñ 198188 ©ó 2025-10-8 09:16 ½s¿è
  1. Sub Copy_Layout_To_Data() 'ok!
  2.         Dim h, i, j As Integer
  3.         Dim myString, myString1 As String
  4.         Dim charToFind, charToFind1, charToFind2 As String
  5.         Dim position, position1, position2, position3 As Long
  6.         Dim stringLength, stringLength1 As Long
  7.         j = 2
  8.         
  9.         h = Worksheets("Layout Dwg").Cells(Rows.Count, 1).End(3).Row
  10.         h = h + 1
  11.         
  12.         myString = Sheets("Data").Range("C2")
  13.         stringLength = Len(myString)
  14.         charToFind = "-" ' Searching for lowercase '-' in "World"
  15.         position = InStr(1, myString, charToFind, vbTextCompare)

  16.         If position > 0 Then
  17.         
  18.         a = Mid(myString, 1, position - 2)
  19.         b = Mid(myString, position + 1, stringLength - position - 1)
  20.         
  21.         For i = 2 To h
  22.         Sheets("Layout Dwg").Select
  23.         myString1 = Range("B" & i)
  24.         charToFind2 = "F" ' Searching for lowercase 'F' in "World"
  25.         position2 = InStr(1, myString1, charToFind2, vbTextCompare)
  26.         
  27.         If position2 > 0 Then
  28.         c = Mid(myString1, 1, position2 - 1)
  29.         If c = a Then
  30.         Sheets("Layout Dwg").Select
  31.         Range("A" & i & ":C" & i).Select
  32.         Selection.Copy
  33.         Sheets("Data").Select
  34.         Range("M" & j).Select
  35.         ActiveSheet.Paste
  36.         j = j + 1
  37.         Else
  38.         If c > a And c <= b Then
  39.         Sheets("Layout Dwg").Select
  40.         Range("A" & i & ":C" & i).Select
  41.         Selection.Copy
  42.         Sheets("Data").Select
  43.         Range("M" & j).Select
  44.         ActiveSheet.Paste
  45.         j = j + 1
  46.         End If
  47.         End If
  48.         End If
  49.         Next i
  50.         
  51.         Else
  52.         charToFind1 = "&" ' Searching for lowercase '&' in "World"
  53.         position1 = InStr(1, myString, charToFind1, vbTextCompare)
  54.         If position1 > 0 Then
  55.         Z = Mid(myString, 1, position1 - 1)
  56.         y = Mid(myString, position1 + 1, stringLength - position1)
  57.         
  58.         For i = 2 To h
  59.         
  60.         Sheets("Layout Dwg").Select
  61.         c = Range("B" & i)
  62.         If c = Z Or c = y Then
  63.         Sheets("Layout Dwg").Select
  64.         Range("A" & i & ":C" & i).Select
  65.         Selection.Copy
  66.         Sheets("Data").Select
  67.         Range("M" & j).Select
  68.         ActiveSheet.Paste
  69.         j = j + 1
  70.         End If
  71.         
  72.         Next i
  73.         
  74.         Else
  75.         W = myString
  76.         For i = 2 To h
  77.         
  78.         Sheets("Layout Dwg").Select
  79.         c = Range("B" & i)
  80.         If c = W Then
  81.         Sheets("Layout Dwg").Select
  82.         Range("A" & i & ":C" & i).Select
  83.         Selection.Copy
  84.         Sheets("Data").Select
  85.         Range("M" & j).Select
  86.         ActiveSheet.Paste
  87.         j = j + 1
  88.         End If
  89.         Next i
  90.         
  91.         End If
  92.         End If
  93.     End Sub
½Æ»s¥N½X
³o­Ó¦}«D§Úªº°ÝÃD­n¨D¡C
§Ú·N«ä¬O»¡¡A
§Ú¿é¤J02F-04F ¡]¹Ï1)
´N·|¦Û°Ê©â¨ú Layout Dwg ªíùØÄæ B ¼Ó¼h ...
198188 µoªí©ó 2025-10-6 11:36

¹Á¸Õ¥Î³o­Ó¤è¦¡¥i¥H°Ï§O¡A¦ý¬O¹B¦æ³t«×¤ÓºC¡A½Ð±Ð¦U¤j¤j¦³¨S¦³§ï¶iªÅ¶¡¡H
§@ªÌ: Andy2483    ®É¶¡: 2025-10-8 14:54

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

¦^´_ 2# 198188


    ÁÂÁ«e½úµoªí¦¹¥DÃD»P½d¨Ò
«á¾ÇÂǦ¹©«½m²ß°}¦C»P¦r¨å,¾Ç²ß¤è®×¦p¤U,½Ð«e½ú°Ñ¦Ò

Option Explicit
Sub TEST()
Dim Brr, Z, Q, i&, j%, N&, T$, T1$, MyPath$, xFile$, xBook As Workbook, MyBook As Workbook, Re
Set Z = CreateObject("Scripting.Dictionary")
Set MyBook = ThisWorkbook
MyPath = MyBook.Path & "\"
xFile = "Data Base.xlsx"
On Error Resume Next
Set xBook = Workbooks(xFile)
If xBook Is Nothing Then
   Set xBook = Workbooks.Open(MyPath & xFile, , True, , "")
   Re = True
   MyBook.Activate
End If
On Error GoTo 0
T = Sheets("Read").[A2] & "|" & Sheets("Read").[C2]
T1 = Sheets("Read").[B2]
With xBook.Sheets("WO No")
   For i = 2 To .[A65536].End(3).Row
      If .Cells(i, "B") & "|" & .Cells(i, "D") = T Then
         .Rows(i).Copy Sheets("WO No").Rows(2)
         Sheets("Read").[A2].Resize(, 3).Copy Sheets("WO No").[B2]
         GoTo 11
      End If
   Next
   MsgBox "Nothing": Exit Sub
End With
11
If T1 Like "##F-*##F" Then
   For i = Val(T1) To Val(StrReverse(Mid(StrReverse(T1), 2, 2)))
      Z(Format(i, "00F")) = ""
   Next
   Else
   Q = Split(T1 & "&" & T1, "&")
   For i = 0 To UBound(Q)
      Z(Q(i)) = 0
   Next
End If
Brr = xBook.Sheets("Layout Dwg").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z.Exists(Brr(i, 2)) Then
      Z(Brr(i, 1)) = Z(Brr(i, 1)) + Val(Brr(i, 3))
      N = N + 1
      For j = 1 To 3: Brr(N, j) = Brr(i, j): Next
   End If
Next
If N > 0 Then Sheets("Layout Dwg").[K2].Resize(N, 3) = Brr: N = 0 Else MsgBox "Nothing2": GoTo 12
Brr = xBook.Sheets("Frame per Dwg").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z(Brr(i, 1)) > 0 Then
      N = N + 1
      For j = 1 To 6: Brr(N, j) = Brr(i, j): Next
      Brr(N, 5) = Brr(N, 5) * Z(Brr(i, 1))
   End If
Next
If N > 0 Then Sheets("Frame per Dwg").[N2].Resize(N, 6) = Brr: N = 0
Brr = xBook.Sheets("Part List").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z(Brr(i, 7)) > 0 Then
      N = N + 1
      For j = 1 To 13: Brr(N, j) = Brr(i, j): Next
      Brr(N, 3) = Brr(N, 3) * Z(Brr(i, 7))
   End If
Next
If N > 0 Then Sheets("Part List").[U2].Resize(N, 13) = Brr
12: If Re = True Then xBook.Close 0
End Sub
§@ªÌ: 198188    ®É¶¡: 2025-10-8 16:29

¥»©«³Ì«á¥Ñ 198188 ©ó 2025-10-8 16:49 ½s¿è
¦^´_  198188


    ÁÂÁ«e½úµoªí¦¹¥DÃD»P½d¨Ò
«á¾ÇÂǦ¹©«½m²ß°}¦C»P¦r¨å,¾Ç²ß¤è®×¦p¤U,½Ð«e½ú°Ñ¦Ò

...
Andy2483 µoªí©ó 2025-10-8 14:54


·PÁ«e½ú«üÂI
§@ªÌ: 198188    ®É¶¡: 2025-10-9 17:30

¦^´_  198188


    ÁÂÁ«e½úµoªí¦¹¥DÃD»P½d¨Ò
«á¾ÇÂǦ¹©«½m²ß°}¦C»P¦r¨å,¾Ç²ß¤è®×¦p¤U,½Ð«e½ú°Ñ¦Ò

...
Andy2483 µoªí©ó 2025-10-8 14:54


[attach]38112[/attach]

«e½ú§A¦n¡AÀ˵ø«á¡Aµo²{¦³¨âÂIº|¤F´£¥X¡A
Layout Dwg  »Ý­n¥[¤@­Ó¿z¿ï±ø¥ó ¡§§å¦¸¡¨

Part List »Ý­n¼W¥[¤@­Ó¸ê®Æ¡G ¿z¿ï±ø¥ó¬O¡AWO-No ÄæF - ÄæK ªº¦U¼Ë¼Æ¾Ú¦r¥À¡AÁ|¨Ò WO-J057-022 ùØ­±¦³ "WS" ®Ú¾Ú Frame Per Dwg ùØ­±ªº²Õ¸Ë¹Ï¸¹§t¦³¡§WS¡¨¡A¦bPart List ¹ïÀ³²Õ¸Ë¸¹/¥[¤u¥ó¸¹ ¿z¿ï¥X¨Ó ¡]¥uÅã¥Ü¦U¼Ë¼Æ¾Ú¦³ªº¬ÛÃö¦r¥À¡^¼Æ¶q¤]¬O¨â­ÓªíªºÁ`¼Æ¬Û­¼ ¡]¦p¹Ï¤Îªþ¥ó¡^
§@ªÌ: 198188    ®É¶¡: 2025-10-10 12:12

«e½ú§A¦n¡AÀ˵ø«á¡Aµo²{¦³¨âÂIº|¤F´£¥X¡A
Layout Dwg  »Ý­n¥[¤@­Ó¿z¿ï±ø¥ó ¡§§å¦¸¡¨

Part List ...
198188 µoªí©ó 2025-10-9 17:30


Layout Dwg §å¦¸°ÝÃD¤w¸g¸Ñ¨M¡C

Part List ¸É¥R¤è­± ÁÙ¨S¸Ñ¨M
Frame per Dwg ªí内ÄæB "²Õ¸Ë¹Ï¸¹" §t¦³ WO No ùØ­±ªº "¦U¼Ë¼Æ¾Ú" ÄæF - ÄæK ªº­^¤å¦r¥À¡AŪ¨ú ¦bPart List ÄæG "¹ïÀ³²Õ¸Ë¸¹/¥[¤u¥ó¸¹" ¬Û¦Pªº"²Õ¸Ë¹Ï¸¹"¡A¤Î¼Æ¶q¬Û­¼¡C
  1. For i = 2 To UBound(Brr)
  2.    If Z.Exists(Brr(i, 2)) Then
  3.    If Brr(i, 4) = Sheets("Read").[A2] Then
  4.       Z(Brr(i, 1)) = Z(Brr(i, 1)) + Val(Brr(i, 3))
  5.       N = N + 1
  6.       For j = 1 To 4: Brr(N, j) = Brr(i, j): Next
  7.    End If
  8.    End If
  9. Next
  10. If N > 0 Then Sheets("Layout Dwg").[A2].Resize(N, 4) = Brr: N = 0 Else MsgBox "Nothing under the floor": GoTo 12
½Æ»s¥N½X

§@ªÌ: 198188    ®É¶¡: 2025-10-13 10:25

  1. Set Z = CreateObject("Scripting.Dictionary")

  2. xFile = "Data Base.xlsx"

  3. Set xBook = Workbooks(xFile)



  4. a = Sheets("WO No").Range("F2")
  5. b = Sheets("WO No").Range("G2")
  6. c = Sheets("WO No").Range("H2")
  7. d = Sheets("WO No").Range("I2")
  8. e = Sheets("WO No").Range("J2")
  9. f = Sheets("WO No").Range("K2")


  10. G = Sheets("Part List").Range("A1").CurrentRegion.Rows.Count + 1

  11. Brr = Sheets("Frame per Dwg").[A1].CurrentRegion
  12.   For i = 2 To UBound(Brr)
  13.   If Mid(Brr(i, 2), 1, 2) = a Or Mid(Brr(i, 2), 1, 2) = b Or Mid(Brr(i, 2), 1, 2) = c Or Mid(Brr(i, 2), 1, 2) = d Or Mid(Brr(i, 2), 1, 2) = e Or Mid(Brr(i, 2), 1, 2) = f Then
  14.    Z(Brr(i, 2)) = Z(Brr(i, 2))
  15.       N = N + 1
  16.       For j = 1 To 6: Brr(N, j) = Brr(i, j): Next
  17.    End If

  18. Next

  19. N = 1
  20. Arr = xBook.Sheets("Part List").[A1].CurrentRegion
  21. For i = 2 To UBound(Arr)
  22.    If Z.Exists(Arr(i, 7)) Then
  23.       N = N + 1
  24.       For j = 1 To 13
  25.       Arr(N, j) = Arr(i, j)
  26.       Next j
  27.       Arr(N, 5) = Arr(N, 5) * Z(Arr(i, 7))
  28.    End If
  29. Next
  30. If N > 0 Then Sheets("Part List").Range("A" & G).Resize(N, 13) = Arr
½Æ»s¥N½X
Layout Dwg §å¦¸°ÝÃD¤w¸g¸Ñ¨M¡C

Part List ¸É¥R¤è­± ÁÙ¨S¸Ñ¨M
Frame per Dwg ªí内ÄæB "²Õ¸Ë¹Ï ...
198188 µoªí©ó 2025-10-10 12:12


Part List ¸É¥R¤è­±¤]¸Ñ¨M¡A¦ý¬OµLªk®M¤J¬Û¦P¼Ò²Õ¡A»Ý­n¿W¥ß¶}¤@­Ó¼Ò²Õ¡CÁÙ¦³½Æ»s®É¡AÁ`¬O·|½ÆÂø²Ä¤@Äæªº¦W¥Ø¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-13 11:03

¦^´_ 8# 198188


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

Option Explicit
Sub TEST_2()
Dim Brr, Z, Q, i&, j%, N&, T$, T1$, MyPath$, xFile$, xBook As Workbook, MyBook As Workbook, Re
Application.ScreenUpdating = False
With Sheets("Layout Dwg")
   .[A2].Resize(.UsedRange.Rows.Count, 4).ClearContents
End With
With Sheets("Frame per Dwg")
   .[A2].Resize(.UsedRange.Rows.Count, 6).ClearContents
End With
With Sheets("Part List")
   .[A2].Resize(.UsedRange.Rows.Count, 13).ClearContents
End With
Set MyBook = ThisWorkbook
MyPath = MyBook.Path & "\"
xFile = "Data Base.xlsx"
On Error Resume Next
Set xBook = Workbooks(xFile)
If xBook Is Nothing Then
   Set xBook = Workbooks.Open(MyPath & xFile, , True, , "")
   Re = True
   MyBook.Activate
End If
Set Z = CreateObject("Scripting.Dictionary")
On Error GoTo 0
T = Sheets("Read").[A2] & "|" & Sheets("Read").[C2]
T1 = Sheets("Read").[B2]
With xBook.Sheets("WO No")
   For i = 2 To .[A65536].End(3).Row
      If .Cells(i, "B") & "|" & .Cells(i, "D") = T Then
         .Rows(i).Copy Sheets("WO No").Rows(2)
         For j = 6 To 11
            Z("|" & .Cells(i, j)) = ""
         Next
         Sheets("Read").[A2].Resize(, 3).Copy Sheets("WO No").[B2]
         GoTo 11
      End If
   Next
   MsgBox "Nothing": Exit Sub
End With
11
If T1 Like "##F-*##F" Then
   For i = Val(T1) To Val(StrReverse(Mid(StrReverse(T1), 2, 2)))
      Z(Format(i, "00F")) = ""
   Next
   Else
   Q = Split(T1 & "&" & T1, "&")
   For i = 0 To UBound(Q)
      Z(Q(i)) = 0
   Next
End If
Brr = xBook.Sheets("Layout Dwg").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z.Exists(Brr(i, 2)) Then
      If Brr(i, 4) = Sheets("Read").[A2] Then
         Z(Brr(i, 1)) = Z(Brr(i, 1)) + Val(Brr(i, 3))
         N = N + 1
         For j = 1 To 4: Brr(N, j) = Brr(i, j): Next
   End If
   End If
Next
If N > 0 Then Sheets("Layout Dwg").[A2].Resize(N, 4) = Brr: N = 0 Else MsgBox "Nothing under the floor": GoTo 12
Brr = xBook.Sheets("Frame per Dwg").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z(Brr(i, 1)) > 0 Then
      N = N + 1
      For j = 1 To 6: Brr(N, j) = Brr(i, j): Next
      Brr(N, 5) = Brr(N, 5) * Z(Brr(i, 1))
   End If
Next
If N > 0 Then Sheets("Frame per Dwg").[A2].Resize(N, 6) = Brr: N = 0 Else MsgBox "Frame per Dwg_Nothing"
Brr = xBook.Sheets("Part List").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z.Exists("|" & Left(Brr(i, 7), 2)) And Z(Brr(i, 7)) > 0 Then
      N = N + 1
      For j = 1 To 13: Brr(N, j) = Brr(i, j): Next
      Brr(N, 3) = Brr(N, 3) * Z(Brr(i, 7))
   End If
Next
If N > 0 Then Sheets("Part List").[A2].Resize(N, 13) = Brr Else MsgBox "Part List_Nothing"
12: If Re = True Then xBook.Close 0
End Sub
§@ªÌ: 198188    ®É¶¡: 2025-10-13 11:19

¦^´_  198188


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

Option Explicit
Sub TEST_2()
Dim Brr, Z, Q, i&, j%, N&, T$ ...
Andy2483 µoªí©ó 2025-10-13 11:03


·PÁ«e½ú«üÂI¡C
³o­Ó¤è®×¨ú®ø¤F¤@­Ó¤§«eªº³W«h¡A Layout Dwg ùØ­±ªº¤À§G¹Ï¦b Frame Per Dwg §ä¤£¨ìªº¡A³o¨Ç¤À§G¹Ï¡]Layout Dwg ) ´N¦bPart List ùØ­±´M§ä¡A¨Ã¥X²{¦bPart List.
§@ªÌ: 198188    ®É¶¡: 2025-10-13 11:32

¦^´_  198188


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

Option Explicit
Sub TEST_2()
Dim Brr, Z, Q, i&, j%, N&, T$ ...
Andy2483 µoªí©ó 2025-10-13 11:03

[attach]38114[/attach]
­è­è´ú¸Õ¤F¡A¾É¤£¥X¼Æ¾Ú¡C
®Ú¾ÚWO No ªº¦U¼Ë¼Æ¾Ú¡A¦ÓFrame per Dwg ùتº²Õ¸Ë¹Ï¸¹¦³³o­Ó¼Æ¾Úªº­^¤å¦r¥À¡A¦bPart List ¾É¥X¼Æ¾Ú¡A
§@ªÌ: Andy2483    ®É¶¡: 2025-10-13 13:21

¦^´_ 13# 198188


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

Option Explicit
Sub TEST_2()
Dim Brr, Z, Q, i&, j%, N&, T$, T1$, MyPath$, xFile$, xBook As Workbook, MyBook As Workbook, Re
Application.ScreenUpdating = False
With Sheets("Layout Dwg")
   .[A2].Resize(.UsedRange.Rows.Count, 4).ClearContents
End With
With Sheets("Frame per Dwg")
   .[A2].Resize(.UsedRange.Rows.Count, 6).ClearContents
End With
With Sheets("Part List")
   .[A2].Resize(.UsedRange.Rows.Count, 13).ClearContents
End With
Set MyBook = ThisWorkbook
MyPath = MyBook.Path & "\"
xFile = "Data Base.xlsx"
On Error Resume Next
Set xBook = Workbooks(xFile)
If xBook Is Nothing Then
   Set xBook = Workbooks.Open(MyPath & xFile, , True, , "")
   Re = True
   MyBook.Activate
End If
Set Z = CreateObject("Scripting.Dictionary")
On Error GoTo 0
T = Sheets("Read").[A2] & "|" & Sheets("Read").[C2]
T1 = Sheets("Read").[B2]
With xBook.Sheets("WO No")
   For i = 2 To .[A65536].End(3).Row
      If .Cells(i, "B") & "|" & .Cells(i, "D") = T Then
         .Rows(i).Copy Sheets("WO No").Rows(2)
         For j = 6 To 11
            Z("|" & .Cells(i, j)) = ""
         Next
         Sheets("Read").[A2].Resize(, 3).Copy Sheets("WO No").[B2]
         GoTo 11
      End If
   Next
   MsgBox "Nothing": Exit Sub
End With
11
If T1 Like "##F-*##F" Then
   For i = Val(T1) To Val(StrReverse(Mid(StrReverse(T1), 2, 2)))
      Z(Format(i, "00F")) = ""
   Next
   Else
   Q = Split(T1 & "&" & T1, "&")
   For i = 0 To UBound(Q)
      Z(Q(i)) = 0
   Next
End If
Brr = xBook.Sheets("Layout Dwg").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z.Exists(Brr(i, 2)) Then
      If Brr(i, 4) = Sheets("Read").[A2] Then
         Z(Brr(i, 1)) = Z(Brr(i, 1)) + Val(Brr(i, 3))
         N = N + 1
         For j = 1 To 4: Brr(N, j) = Brr(i, j): Next
   End If
   End If
Next
If N > 0 Then Sheets("Layout Dwg").[A2].Resize(N, 4) = Brr: N = 0 Else MsgBox "Nothing under the floor": GoTo 12
Brr = xBook.Sheets("Frame per Dwg").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z.Exists("|" & Left(Brr(i, 2), 2)) And Z(Brr(i, 1)) > 0 Then
      N = N + 1
      For j = 1 To 6: Brr(N, j) = Brr(i, j): Next
      Brr(N, 5) = Brr(N, 5) * Z(Brr(i, 1))
   End If
Next
If N > 0 Then Sheets("Frame per Dwg").[A2].Resize(N, 6) = Brr: N = 0 Else MsgBox "Frame per Dwg_Nothing"
Brr = xBook.Sheets("Part List").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z(Brr(i, 7)) > 0 Then
      N = N + 1
      For j = 1 To 13: Brr(N, j) = Brr(i, j): Next
      Brr(N, 3) = Brr(N, 3) * Z(Brr(i, 7))
   End If
Next
If N > 0 Then Sheets("Part List").[A2].Resize(N, 13) = Brr Else MsgBox "Part List_Nothing"
12: If Re = True Then xBook.Close 0
End Sub
§@ªÌ: Andy2483    ®É¶¡: 2025-10-13 13:31

·PÁ«e½ú«üÂI¡C
³o­Ó¤è®×¨ú®ø¤F¤@­Ó¤§«eªº³W«h¡A Layout Dwg ùØ­±ªº¤À§G¹Ï¦b Frame Per Dwg §ä¤£¨ìªº¡A ...
198188 µoªí©ó 2025-10-13 11:19



14#¤è®×¬O¨âªí³£·|§ä,©Ò¥H (FDªí ¤À§G¹Ï¸¹)  ©M (PLªí ¹ïÀ³²Õ¸Ë¸¹/¥[¤u¥ó¸¹) ¦pªG¸ê®Æ²Å¦XÅÞ¿è´N·|­«½Æ¥X²{
µø»Ý¨D¦A½Õ¾ã
§@ªÌ: 198188    ®É¶¡: 2025-10-13 14:06

¦^´_  198188


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

Option Explicit
Sub TEST_2()
Dim Brr, Z, Q, i&, j%, N&, T$ ...
Andy2483 µoªí©ó 2025-10-13 13:21

[attach]38115[/attach]
ªþ¹Ï¬O°õ¦æ«áªºµ²ªG¡APart List ¤@­¶³£¬OªÅ¥Õ¡A¨S¦³¸ê®Æ¥X¨Ó¡C
¨â­Ó³W«h 1 & 2 ³£À³¸Ó¦³¸ê®Æ¡A¦ý¬O¨S¦³¾É¤JPart List
§@ªÌ: Andy2483    ®É¶¡: 2025-10-13 14:33

¦^´_ 16# 198188


    ½d¨Ò ¥Í²£³æ³æ¸¹ ¸Ì¨S¦³ WO-J057-021
§@ªÌ: 198188    ®É¶¡: 2025-10-13 14:44

¦^´_  198188


    ½d¨Ò ¥Í²£³æ³æ¸¹ ¸Ì¨S¦³ WO-J057-021
Andy2483 µoªí©ó 2025-10-13 14:33


¦]爲Data Base ¸ê®Æ¤Ó¦h¡A®e¶q¶W¹L1MB µLªk¤W¶Ç¡A©Ò¥H§Ú§R°£¤F¤@¨ÇData Base 内®e¡C
¤£¹L«ö·Ó³W«h¡AÀ³¸Ó¬O¦@³qªº¡C
§Ú¸Õ¹L¨ä¥Lªº¥Í²£³æ¸¹¡APart list ³£¬OªÅ¥Õ¡C
§@ªÌ: 198188    ®É¶¡: 2025-10-13 15:05

¦^´_  198188


    ½d¨Ò ¥Í²£³æ³æ¸¹ ¸Ì¨S¦³ WO-J057-021
Andy2483 µoªí©ó 2025-10-13 14:33
  1. If Z.Exists("|" & Left(Brr(i, 7), 2)) Or Z(Brr(i, 7)) > 0 Then
½Æ»s¥N½X
§Ú§ä¨ì°ÝÃD©Ò¦b¤F¡A³o¥yÀ³¸Ó¥Î "OR "¤£¬O¥Î "AND" , ¦]爲¨â­Ó³W«h¬O¤£¯à¦@¦sªº¡AÄÝ©ó¨â±ø¿W¥ß³W«h¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-14 13:53

¦^´_ 8# 198188


    ¥H¤U¤è®×¬O½m²ß¥H  Data Base.xlsx §Q¥Î»²§UÄæª½±µ¿z¿ïªº¤è®×,½Ð«e½ú°Ñ¦Ò

1.¿ï¨ú­n¿z¿ïªº¶µ¥Ø
2.³]«ö¶s,«ö¶s°õ¦æ
[attach]38119[/attach]


Option Explicit
Sub TEST_2()
Dim Brr, Z, S, Q, i&, j%, C, R&, N&, T$, T1$
Application.ScreenUpdating = False
Set Z = CreateObject("Scripting.Dictionary")
Q = Split("Layout Dwg/Frame per Dwg/Part List/WO No", "/")
For Each S In Q
   With Sheets(S)
      C = Application.Match("»²§UÄæ", .[1:1], 0)
      If IsError(C) Then
         C = Range(.[A1], .UsedRange).Columns.Count
         C = C + 1
         .Cells(1, C) = "»²§UÄæ"
      End If
      Z(S & "//") = C
      .Activate
      If .AutoFilter Is Nothing Then
         .[A1].Resize(, C).AutoFilter
         With ActiveWindow
            .FreezePanes = False
            .ScrollRow = 1: .ScrollColumn = 1: .SplitRow = 1
            .FreezePanes = True
         End With
         Else
         If .FilterMode = True Then .ShowAllData
         ActiveWindow.ScrollRow = 1: ActiveWindow.ScrollColumn = 1
      End If
   End With
Next
R = Selection.Row
T = Cells(R, "B")
T1 = Cells(R, "C")
If T1 = "" Or T = "" Then Exit Sub Else Cells(R, "A").Resize(, 11).Select
For j = 6 To 11
   Z("|" & Cells(R, j)) = ""
Next
If T1 Like "##F-*##F" Then
   For i = Val(T1) To Val(StrReverse(Mid(StrReverse(T1), 2, 2)))
      Z(Format(i, "00F")) = ""
   Next
   Else
   Q = Split(T1 & "&" & T1, "&")
   For i = 0 To UBound(Q)
      Z(Q(i)) = 0
   Next
End If
Brr = Sheets("Layout Dwg").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   Brr(i - 1, 1) = ""
   If Z.Exists(Brr(i, 2)) And Brr(i, 4) = T Then
      Z(Brr(i, 1)) = Z(Brr(i, 1)) + Val(Brr(i, 3))
      Brr(i - 1, 1) = T & "_" & T1
   End If
Next
C = Z("Layout Dwg//")
With Sheets("Layout Dwg")
   .Cells(2, C).Resize(UBound(Brr) - 1) = Brr
   .Cells.AutoFilter Field:=C, Criteria1:="<>"
End With
Brr = Sheets("Frame per Dwg").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   Brr(i - 1, 1) = ""
   If Z.Exists("|" & Left(Brr(i, 2), 2)) Or Z(Brr(i, 1)) > 0 Then
      S = Brr(i, 5) * Z(Brr(i, 1))
      If S > 0 Then Brr(i - 1, 1) = S
   End If
Next
C = Z("Frame per Dwg//")
With Sheets("Frame per Dwg")
   .Cells(2, C).Resize(UBound(Brr) - 1) = Brr
   .Cells.AutoFilter Field:=C, Criteria1:="<>"
End With
Brr = Sheets("Part List").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   Brr(i - 1, 1) = ""
   If Z(Brr(i, 7)) > 0 Then
      S = Brr(i, 3) * Z(Brr(i, 7))
      If S > 0 Then Brr(i - 1, 1) = S
   End If
Next
C = Z("Part List//")
With Sheets("Part List")
   .Cells(2, C).Resize(UBound(Brr) - 1) = Brr
   .Cells.AutoFilter Field:=C, Criteria1:="<>"
End With
End Sub
§@ªÌ: 198188    ®É¶¡: 2025-10-15 14:01

¦^´_  198188


    ¥H¤U¤è®×¬O½m²ß¥H  Data Base.xlsx §Q¥Î»²§UÄæª½±µ¿z¿ïªº¤è®×,½Ð«e½ú°Ñ¦Ò

1.¿ï¨ú ...
Andy2483 µoªí©ó 2025-10-14 13:53



   ¥i§_説©ú¤@¤U»²§UÄæªº¾Þ§@­ì²z©M³W«h
§@ªÌ: Andy2483    ®É¶¡: 2025-10-15 14:30

¦^´_ 21# 198188


WO Noªí¿ï¨ú 02F-04F«á,«ö¶s°õ¦æ:
[attach]38123[/attach]

Layout Dwgªí·|±o¨ì²Å¦X¼Ó¼h¥B²Å¦X§å¦¸ªº¿z¿ï:
[attach]38124[/attach]

Frame per Dwgªí·|±o¨ì²Å¦X±ø¥ó¥B¼Æ¶q>0ªº¿z¿ï:
[attach]38125[/attach]

Part Listªí·|±o¨ì²Å¦X±ø¥ó¥B¼Æ¶q>0ªº¿z¿ï:
[attach]38126[/attach]
§@ªÌ: 198188    ®É¶¡: 2025-10-15 15:11

[attach]38127[/attach]
¦^´_  198188


WO Noªí¿ï¨ú 02F-04F«á,«ö¶s°õ¦æ:


Layout Dwgªí·|±o¨ì²Å¦X¼Ó¼h¥B²Å¦X§å¦¸ªº¿z¿ï:
...
Andy2483 µoªí©ó 2025-10-15 14:30


§Ú¦b "WO NO", "LAYOUT DWG", FRAME PER DWG" , "PART LIST"  ùØ­±¥[¤J ¡§WO-NO"  ¤Î°õ¦æÁä¡A¹B§@«á¡A¥X²{ Error
§@ªÌ: Andy2483    ®É¶¡: 2025-10-15 15:21

¦^´_ 23# 198188


    ½Ð¥[¤J¥H¤U¬õ¦r¦æ¥N½X

If .AutoFilter Is Nothing Then
         .[A1].Resize(, C).AutoFilter
         With ActiveWindow
            .FreezePanes = False
            .ScrollRow = 1: .ScrollColumn = 1: .SplitRow = 1
            .FreezePanes = True
         End With
         Else
         .[A1].AutoFilter: .[A1].Resize(, C).AutoFilter
         If .FilterMode = True Then .ShowAllData
         ActiveWindow.ScrollRow = 1: ActiveWindow.ScrollColumn = 1
      End If
§@ªÌ: 198188    ®É¶¡: 2025-10-15 15:36

¦^´_  198188


    ½Ð¥[¤J¥H¤U¬õ¦r¦æ¥N½X

If .AutoFilter Is Nothing Then
         .[A1].Resize ...
Andy2483 µoªí©ó 2025-10-15 15:21



   ¥i¥H¤F¡A·PÁ«e½ú«üÂI¡C
§@ªÌ: 198188    ®É¶¡: 2025-10-20 17:47

¦^´_  198188


    ½Ð¥[¤J¥H¤U¬õ¦r¦æ¥N½X

If .AutoFilter Is Nothing Then
         .[A1].Resize ...
Andy2483 µoªí©ó 2025-10-15 15:21


«e½ú¥i§_À°§Ú¬Ý¬Ý³o­Ó¡C

¬ÛÃö³W«h¦b ¡§Á¿¸Ñ Rule¡¨¤@­¶¸Ô²ÓÁ¿¸Ñ¡C
§@ªÌ: 198188    ®É¶¡: 2025-10-21 10:29

«e½ú¥i§_À°§Ú¬Ý¬Ý³o­Ó¡C

¬ÛÃö³W«h¦b ¡§Á¿¸Ñ Rule¡¨¤@­¶¸Ô²ÓÁ¿¸Ñ¡C
198188 µoªí©ó 2025-10-20 17:47



  ¥Î³o­Ó¼ÒªO¡ARule ¤@­¶¡A§Ú±N³W«h«ö¦C¼Ò¦¡±Æ¦C¡A¤è«Kµ{¦¡³]­p¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-22 14:19

¦^´_ 27# 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$, Rk$, W, L
Application.ScreenUpdating = False
Set Z = CreateObject("Scripting.Dictionary")
Brr = Range([Rule!X1], [Rule!E65536].End(3)(1, -3))
For i = 2 To 6
   Z(Brr(i, 3) & "|") = Brr(i, 1)
Next
For i = 2 To UBound(Brr)
   For j = 7 To 24
      If Brr(i, j) = "" Then
         If j = 8 Then
            Z("/" & Brr(i, 5) & "/") = Brr(i, 7)
         End If
         Exit For
      End If
      Z("/" & Brr(i, j) & "/") = Brr(i, 5)
      Z("/" & Brr(i, j) & "//") = Brr(i, 6)
   Next
Next
Brr = Sheets("Á¿¸Ñ Rule").UsedRange
For i = 1 To UBound(Brr)
   If Brr(i, 1) Like "³W«h#*¦rÀY¬O* ¤@¦Cªº*³Æª` ¬O*½Æ»s*" Then
      S = InStr(Brr(i, 1), "¦rÀY¬O") + 3
      T = Replace(Trim(Mid(Brr(i, 1), S, InStr(Brr(i, 1), " ¤@¦Cªº") - S)), "Hareware", "Hardware")
      Rk = Trim(Mid(Brr(i, 1), InStr(Brr(i, 1), "³Æª` ¬O") + 5, 1))
      S = InStr(Brr(i, 1), "½Æ»s ") + 4
      S = Trim(Mid(Brr(i, 1), S, InStr(Brr(i, 1), " ªí®æ") - 1 - S))
      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
   End If
   If Brr(i, 1) Like "³W«h#*¦rÀY¬O ¥H¤WÂŦâ¦r¥À*²Õ¸Ë¹Ïªº¥X³f±¡ªp ¬O*½Æ»s*" Then
      Rk = Trim(Mid(Brr(i, 1), InStr(Brr(i, 1), "±¡ªp ¬O") + 5, 1))
      S = InStr(Brr(i, 1), "½Æ»s ") + 4
      S = Trim(Mid(Brr(i, 1), S, InStr(Brr(i, 1), " ªí®æ") - 1 - S))
      For y = 1 To 100
         If Brr(i - y, 2) = "" Then Exit For Else T = Brr(i - y, 2)
         Z(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
   End If
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)
   T = Z("/" & Left(Brr(i, 1), 2) & "/")
   T4 = Z("/" & Left(Brr(i, 1), 2) & "//")
   Rk = Brr(i, 7)
   T2 = Z(T & "\" & Rk)
   T3 = T & "-" & Z(Rk & "|")
   If Len(T3) > 31 Then '¤u§@ªí¦W>31¦r(§ï¥H¤¤¤åªí¥Ü)
      T3 = T4 & "-" & Z(Rk & "|")
   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
§@ªÌ: 198188    ®É¶¡: 2025-10-22 16:25

¥»©«³Ì«á¥Ñ 198188 ©ó 2025-10-22 16:27 ½s¿è
¦^´_  198188


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

Option Explicit
Sub TEST()
Dim Arr, Brr, Crr(1 To 10000 ...
Andy2483 µoªí©ó 2025-10-22 14:19


¦]爲µ{¦¡¤¤¦³¤¤¤å¡AµLªk¹B¦æ¡A§Ú§ó·s¤F¤@¤U³W«h¡A³W«h¥Î¦Cªí¼Ò¦¡Åã¥Ü¡A¥Î ¡§ Symbol" ¨ÓÃѧO ³Æª`²Å¸¹¡A¥Î "Code" ¨ÓÃѧOÀY¨â­Ó¦rÀY¡C³o¼Ë§Y¨Ï±N¨Ó­n¼W¥[©Î´î¤Ö ²Å¸¹¤Î½s¸¹³£¤£¼vÅTµ{¦¡¡C

1)        ®Ú¾ÚRuleªº³W«h, ·í ¡§Part List¡¨ ÄæG ¡¨³Æª`¡¨ ªº²Å¸¹¤ÎÄæA ªº¦rÀY¸ò ¡§Rule¡¨ ªºSymbol Äæ & Code Äæ¬Û¦P¡A®Ú¾Ú RuleÄæA ªºForm¦WºÙ½ÆÂø¤@­Ó·s¼ÒªO¡A©R¦W¬° ÄæIªºEnglish Product + Symbol ªº¹ïÀ³¦WºÙ¨Ã¥h°£ ¡§-¡§ ©M«á­±ªº¤¤¤å¦r
Á|¨Ò
Part List ùØ­±¬O ¡§F0¡¨ ¦rÀY & ¡§Y¡¨ ³Æª`, ½Æ»sBom ¼ÒªO¡A©R¦W ¡§Screw-Deliver to Site¡¨
Part List ùØ­±¬O ¡§IG¡¨ ¦rÀY & ¡§-¡¨ ³Æª`, ½Æ»sGasket ¼ÒªO¡A©R¦W ¡§Gasket-Deliver to Factory¡¨
Part List ùØ­±¬O ¡§E1¡¨ ¦rÀY & ¡§Y¡¨ ³Æª`, ½Æ»sDN Material ¼ÒªO¡A©R¦W ¡§Extrusion-Delivery Notes For Material Parts¡¨

2)        ®Ú¾ÚRuleªº³W«h, ·í ¡§Frame per Dwg¡¨ ÄæF ¡¨³Æª`¡¨ ªº²Å¸¹¤ÎÄæBªº¦rÀY¸ò ¡§Rule¡¨ ªºSymbol Äæ & Code Äæ¬Û¦P¡A®Ú¾Ú RuleÄæA ªºForm¦WºÙ½ÆÂø¤@­Ó·s¼ÒªO¡A©R¦W¬° ÄæIªºEnglish Product + Symbol ªº¹ïÀ³¦WºÙ¨Ã¥h°£ ¡§-¡§ ©M«á­±ªº¤¤¤å¦r
Á|¨Ò
Frame per Dwg ùØ­±¬O ¡§DF¡¨ ¦rÀY & ¡§T¡¨ ³Æª`, ½Æ»sFinish ¼ÒªO¡A©R¦W ¡§Door Frame- Finish Part Order On-Hold¡¨
Frame per Dwg ùØ­±¬O ¡§WS¡¨ ¦rÀY & ¡§T¡¨ ³Æª`, ½Æ»sFinish ¼ÒªO¡A©R¦W ¡§Window Sash - Finish Part Order On-Hold¡¨
Frame per Dwg ùØ­±¬O ¡§DF¡¨ ¦rÀY & ¡§W¡¨ ³Æª`, ½Æ»sFinish ¼ÒªO¡A©R¦W ¡§Door Frame - Finish Part Order¡¨

Bom¼ÒªO ¶ñ¼g³W«h
Range (¡§A4¡¨) = ÄæG ªº­^¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§ Screw ¡V Á³µ·¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Panel ¡V ¶zª÷¡¨)
Range (¡§A5¡¨) = Äæ H ªº¤¤¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§Deliver to Site -¤u¦a¥Î¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Deliver to Factory - ¼t©Ð¥Î¡¨)
¤Ø¤o = Part List Äæ L ªø«× "x" Äæ M ¼e«× (Á|¨Ò 2211.1 x 717.9¡^
¼Æ¶q = Part List Äæ  C ¼Æ¶q
³Æµù =  Part List Äæ  G ³Æµù¶q
¨ÑÀ³°Ó½s¸¹ = Material Äæ C ¨ÑÀ³°Ó½s¸¹
­^¤å´y­z = Material Äæ E ­^¤å´y­z(¹ï«È¤á)
¤¤¤å´y­z = Material Äæ F ¤¤¤å´y­z(¹ï¨ÑÀ³°Ó)
§÷½è, ¼Ð·Ç¤Îµ¥¯Å = Material Äæ G §÷½è
³æ­« = Material Äæ K ³æ­«
顔¦â/ªí­±³B²z = Material Äæ J 顔¦â/ªí­±³B²z
³æ¦ì = Material Äæ H ­^¤å³æ¦ì

Gasket¼ÒªO ¶ñ¼g³W«h
Range (¡§D6¡¨) = ÄæG ªº­^¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§ Screw ¡V Á³µ·¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Panel ¡V ¶zª÷¡¨)
Range (¡§D7¡¨) = Äæ H ªº¤¤¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§Deliver to Site -¤u¦a¥Î¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Deliver to Factory - ¼t©Ð¥Î¡¨)
§Ç¸¹= 1¡A2¡A3¶¶§Ç
½s¸¹ = Part List Äæ A ¥[¤u¥ó½s¸¹
Á`¼Æ¶q = Part List Äæ  C ¼Æ¶q
¼e«× = Part List Äæ E ¼e«×
°ª«× = Part List Äæ F °ª«×
³Æµù =  Part List Äæ  G ³Æµù¶q
¨ÑÀ³°Ó½s½X = Material Äæ C ¨ÑÀ³°Ó¼Ò¸¹
­^¤å´y­z = Material Äæ E ­^¤å´y­z(¹ï«È¤á)
¤¤¤å´y­z = Material Äæ F ¤¤¤å´y­z(¹ï¨ÑÀ³°Ó)
³æ¦ì = Material Äæ H ­^¤å³æ¦ì

Structural ¼ÒªO ¶ñ¼g³W«h
Range (¡§C3¡¨) = ÄæG ªº­^¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§ Screw ¡V Á³µ·¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Panel ¡V ¶zª÷¡¨)
Range (¡§C4¡¨) = Äæ H ªº¤¤¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§Deliver to Site -¤u¦a¥Î¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Deliver to Factory - ¼t©Ð¥Î¡¨)
§Ç¸¹= 1¡A2¡A3¶¶§Ç
½s¸¹ = Part List Äæ A ¥[¤u¥ó½s¸¹
§÷®Æ´y­z =  Part List Äæ B ´y­z
Á`ªø«× = Part List Äæ C ¼Æ¶q
ºI­±¿n = Part List Äæ B ´y­zªºªø«×¬Û­¼ Á|¨Ò ´y­z¬O"19.8mmx8mm DC983 STRUCTURAL SILICONE-BLACK"  ºI­±¿n­pºâ¬° 19.8*8=158.4
Á`®e¶q = ÄæE Á`ªø«× * ÄæF ºI­±¿n / 1000 (¤p¼ÆÂI¶i1, Á|¨Ò 12.1 =13¡F14.3 = 15¡F 0.8 = 1)

DN Material ¼ÒªO ¶ñ¼g³W«h
Range (¡§A3¡¨) = ÄæG ªº­^¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§ Screw ¡V Á³µ·¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Panel ¡V ¶zª÷¡¨)
Range (¡§A4¡¨) = Äæ H ªº¤¤¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§Deliver to Site -¤u¦a¥Î¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Deliver to Factory - ¼t©Ð¥Î¡¨)
§Ç¸¹= 1¡A2¡A3¶¶§Ç
½s½X = Part List Äæ A ¥[¤u¥ó½s¸¹
¨ÑÀ³°Ó½s¸¹ = Part List Äæ K ¨ÑÀ³°Ó½s¸¹
¼e«× = Part List Äæ E ¼e«×
Á`¼Æ¶q = Part List Äæ  C ¼Æ¶q
³æ­« = ¥Î¨ÑÀ³°Ó½s¸¹Åª¨ú Material Äæ K ³æ­«
³æ¦ì = ¥Î¨ÑÀ³°Ó½s¸¹Åª¨ú Material Äæ H ­^¤å³æ¦ì
Á`­«¶q = Äæ E ³æ­« * ÄæG Á`¼Æ¶q
³Æµù =  Part List Äæ  G ³Æµù¶q

Fabrication Extrusion¼ÒªO ¶ñ¼g³W«h
Range (¡§A3¡¨) = ÄæG ªº­^¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§ Screw ¡V Á³µ·¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Panel ¡V ¶zª÷¡¨)
Range (¡§A4¡¨) = Äæ H ªº¤¤¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§Deliver to Site -¤u¦a¥Î¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Deliver to Factory - ¼t©Ð¥Î¡¨)
§Ç¸¹= 1¡A2¡A3¶¶§Ç
¥[¤u¥ó½s¸¹ = Part List Äæ A ¥[¤u¥ó½s¸¹
¼Ò¸¹ = Part List Äæ K ¨ÑÀ³°Ó½s¸¹
¦¨¦â½s¸¹  = Part List Äæ J ¦¨¦â½s¸¹
ªø«× =  Part List Äæ D ªø«×
Á`¼Æ¶q = Part List Äæ  C ¼Æ¶q
°Ñ¦Ò¹Ï¸¹ = Part List Äæ A ¥[¤u¥ó½s¸¹ ¥h°£²Ä¤G­Ó ¡§-¡¨ «á­±ªº¦r¡]¦p¦³¡^
Á|¨Ò ¥[¤u¥ó½s¸¹ E1106-600 °Ñ¦Ò¹Ï¸¹ E1106-600; ¥[¤u¥ó½s¸¹ E1106-600-01 °Ñ¦Ò¹Ï¸¹ E1106-600; ¥[¤u¥ó½s¸¹ E1106-600-11 °Ñ¦Ò¹Ï¸¹ E1106-600
³Æµù =  Part List Äæ  G ³Æµù¶q

Finish ¼ÒªO ¶ñ¼g³W«h
Range (¡§A3¡¨) = ÄæG ªº­^¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§ Screw ¡V Á³µ·¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Panel ¡V ¶zª÷¡¨)
Range (¡§A4¡¨) = Äæ H ªº¤¤¤å¦WºÙ + ³Æª`¬ÛÃöªºB ¦C¦WºÙ (Á|¨Ò Ū¨úScrew ªº¸ê®Æ¡A³Æª`¬OY, Åã¥Ü ¡§Deliver to Site -¤u¦a¥Î¡¨; Ū¨úPanel ªº¸ê®Æ¡A³Æª`¬O - ¡AÅã¥Ü ¡¨Deliver to Factory - ¼t©Ð¥Î¡¨)
§Ç¸¹= 1¡A2¡A3¶¶§Ç
³æ¤¸¥ó½s¸¹ = Frame per Dwg Äæ B ²Õ¸Ë¹Ï½s¸¹ (¬ÛÀ³ÀY¨â­Ó¦r¥À¡^
¼e«× = Frame per Dwg Äæ C ²Õ¸Ë¹Ï¼e«×
°ª«× = Frame per Dwg Äæ D ²Õ¸Ë¹Ï°ª«×
Á`¼Æ¶q = Frame per Dwg Äæ E ²Õ¸Ë¹Ï¦b¤À§G¹Ï¤Wªº¼Æ¶q
³Æµù = Frame per Dwg Äæ F ²Õ¸Ë¹Ïªº¥X³f±¡ªp
§@ªÌ: 198188    ®É¶¡: 2025-10-22 16:35

¦]爲µ{¦¡¤¤¦³¤¤¤å¡AµLªk¹B¦æ¡A§Ú§ó·s¤F¤@¤U³W«h¡A³W«h¥Î¦Cªí¼Ò¦¡Åã¥Ü¡A¥Î ¡§ Symbol" ¨ÓÃѧO ³Æª` ...
198188 µoªí©ó 2025-10-22 16:25


¥t¥~¨îªí§¹¦¨«á¡A¥i§_±N¥Í¦¨ªº¨îªí¡A¥´¦L PDF save ¦b¸Ó Excel ªº¦ì¸m¡H
§@ªÌ: Andy2483    ®É¶¡: 2025-10-22 16:44

¦^´_ 29# 198188


    ½Ð±N³W«h¤å¦r±Ô­zªí³æ¤Æ«á¤W¶Ç·s½d¨Ò ,¦p¤U¹Ï

[attach]38143[/attach]
§@ªÌ: 198188    ®É¶¡: 2025-10-23 08:12

¥»©«³Ì«á¥Ñ 198188 ©ó 2025-10-23 08:26 ½s¿è
¦^´_  198188


    ½Ð±N³W«h¤å¦r±Ô­zªí³æ¤Æ«á¤W¶Ç·s½d¨Ò ,¦p¤U¹Ï
Andy2483 µoªí©ó 2025-10-22 16:44


[attach]38147[/attach]

¥Ñ©ó¤¤¤å·|¦³¶Ã½X¡A©Ò¥H§Ú¤W¸üªº½d¨Ò Result ¥Î­^¤å±Ô­z¡A¥t¥~¹Ï¤ù¥Î¤¤¤å±Ô­z¡Cªþ¥ó³W«h¬O¤¤¤å´y­z³W«h¡C

Rule Äæ A "½Æ»sªí®æ Copy Form"  ÂŦⳡ¤À¬O«ü¥Ü½ÆÂø­þ­Ó¼ÒªOªºªí®æ
Rule Äæ B - H "³Æª`²Å¸¹ Remark " ¶À¦â³¡¤À¬O¹ïÀ³ Part List Äæ G "³Æª`" & Frame per Dwg Äæ F "²Õ¸Ë¹Ïªº¥X³f±¡ªp" ªº¿ë»{
Rule Äæ K - AB " ÃöÁä¦rKey Word" ºñ¦â³¡¤À¬O ¹ïÀ³ Part List Äæ A "¥[¤u¥ó½s¸¹" & Frame per Dwg Äæ B "²Õ¸Ë¹Ï½s¸¹" ªºÀY¨â­Ó¦rªº¿ë»{
·í Rule Äæ B - H "³Æª`²Å¸¹ Remark " & Rule Äæ K - AB " ÃöÁä¦rKey Word" ¨â­Ó³£²Å¦X±ø¥óªº ®Ú¾ÚRule Äæ A  "½Æ»sªí®æ Copy Form" ¨Ó¥Í²£¤@­Ó·sªºªí®æ¡AµM«á«ö·Ó ³W«h ¨Ó¶ñ¤J¸ê®Æ¡C
³Ì«á§â©Ò¦³·s¥Í¦¨ªºªí®æ¡A¥´¦L¦¨PDF Àx¦s¦b·í¤Uªº®à­± / ¸ÓExcel ªº¦ì¸m¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-23 08:43

¦^´_ 32# 198188


¤u§@ªí¦WºÙ¥u¯à¦³31­Ó¦r¤¸,­Y¶W¹L¦p¦ó³B²z?
§@ªÌ: 198188    ®É¶¡: 2025-10-23 11:24

¦^´_  198188


¤u§@ªí¦WºÙ¥u¯à¦³31­Ó¦r¤¸,­Y¶W¹L¦p¦ó³B²z?
Andy2483 µoªí©ó 2025-10-23 08:43


¦pªG ¥u¦³1­Ó Key Word ªºª½±µ¥Î Key Word ©R¦W,
¦pªG¥X²{¶W¹L¤@­Ó key word ªºª½±µ¥ÎEnglish Product©R¦W¡C

Á|¨Ò
Hardware = HW
Screw = Screw
Weather Sealant = Weather Sealant
Flush Slab Edge Cover Frame = FF
Door Frame  = DF
Casting = Casting
Structural Sealant = Structural Sealant
Gasket = Gasket
Thermal Rock = TR
   
¥t¥~Remark
ª½±µ¥Î²Å¸¹©R¦W¡C
²Å¸¹ - ¥Î -
²Å¸¹ Y ¥ÎY
²Å¸¹ O ¥Î O
²Å¸¹ T ¥Î T
²Å¸¹ W ¥Î W
§@ªÌ: Andy2483    ®É¶¡: 2025-10-23 11:57

¦^´_ 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
§@ªÌ: 198188    ®É¶¡: 2025-10-23 13:10

¦^´_  198188


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

Option Explicit
Sub TEST()
Dim Arr, Brr, Crr(1 To 10000,  ...
Andy2483 µoªí©ó 2025-10-23 11:57


[attach]38149[/attach]
°õ¦æ«á¡A¥X²{³o­Ó¿ù»~¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-23 13:59

¦^´_ 36# 198188


    ¥i¯à­ì¦]:Materialªí¸ê®Æ¤£§¹¾ã
Part ListªíL(¨ÑÀ³°Ó½s¸¹) ¦b MaterialªíCÄæ§ä¤£¨ì  ¬ÛÀ³ªº(¨ÑÀ³°Ó½s¸¹)
§@ªÌ: 198188    ®É¶¡: 2025-10-23 14:21

¦^´_  198188


    ¥i¯à­ì¦]:Materialªí¸ê®Æ¤£§¹¾ã
Part ListªíL(¨ÑÀ³°Ó½s¸¹) ¦b MaterialªíCÄæ§ä¤£ ...
Andy2483 µoªí©ó 2025-10-23 13:59


¨º¯à¤£¯à¥[¤@¥y¡A¦pªGŪ¨úMaterial ®É§ä¤£¨ìªº¡Aª½±µªÅ¥Õ¡H
§@ªÌ: Andy2483    ®É¶¡: 2025-10-23 14:38

¥»©«³Ì«á¥Ñ 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
§@ªÌ: 198188    ®É¶¡: 2025-10-23 14:53

[attach]38150[/attach]
¦^´_  198188


    ¸Ì­±¦³3¦æ:    If A(R, 3)  "" Then
³£¸m´«¦¨:    If A(R, 3)  "" And Z.Exists( ...
Andy2483 µoªí©ó 2025-10-23 14:38


§ï§¹¤§«á¡A¹B¦æµ{¦¡¡A¾ã­ÓExcel ¤@ª½ ¨S¦³¦^À³¡C
§@ªÌ: 198188    ®É¶¡: 2025-10-23 15:05

[attach]38151[/attach]
§ï§¹¤§«á¡A¹B¦æµ{¦¡¡A¾ã­ÓExcel ¤@ª½ ¨S¦³¦^À³¡C
198188 µoªí©ó 2025-10-23 14:53



    ¹B¦æ¤j·§¥b¤p®É«á¡A¥X²{³o­Ó¿ù»~¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-23 15:06

¦^´_ 40# 198188


    §Ú´ú¸Õ Part Listªí2000¦C »Ý­n60¬í
§@ªÌ: Andy2483    ®É¶¡: 2025-10-23 15:19

¦^´_ 41# 198188


    ¨S¦³¹ê»Ú¤j¶q¸ê®Æ½d¨Ò°µ´ú¸Õ,¥u¯à«ØÄ³¦Û¦æ º¥¶i¼W¥[¸ê®Æ¶q°µ´ú¸Õ
§@ªÌ: Andy2483    ®É¶¡: 2025-10-23 16:06

¦^´_ 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¬Ý¬Ý
§@ªÌ: 198188    ®É¶¡: 2025-10-23 16:31

¦^´_  198188


    ¨S¦³¹ê»Ú¤j¶q¸ê®Æ½d¨Ò°µ´ú¸Õ,¥u¯à«ØÄ³¦Û¦æ º¥¶i¼W¥[¸ê®Æ¶q°µ´ú¸Õ
Andy2483 µoªí©ó 2025-10-23 15:19


[attach]38159[/attach]

¥Ñ©óÀÉ®×¹L¤j¡AµLªk¤W¸ü¡A§Ú©î¤À¤F 7 ­Ó Excel
Result 23 Oct ¬O§Ú¥Î¨Ó´ú¸Õªº¼ÒªO©Mµ{¦¡,
Data Base 1 ¬O°£¤F Part List ³o­¶¸ê®Æªº Data Base
Data Base ùØ­±ªº Part List ¦@¦³ 45135 ­Ó¸ê®Æ¡A§Ú¤À§O¥Î 5 ­ÓExcel ©Ó¸ü¡C±q1-10000¡A10001-20000¡A20001-30000¡A 30001-40000¡A 40001-45135

¨ä¤¤§Úµo²{¤@­Ó°ÝÃD¡A´N¬O¹B¦æ¤§«eªº Data µ{¦¡¬O¡APart List ªº¼Æ¶q¥þ³¡¬O 0¡A ¦Ó¥B¸ê®Æ¤£¹ï¡C
³W«h¬O
¤é´Á              §å¦¸¦¸§Ç           ¼Ó¼h            ¥Í²£³æ¸¹                   ¶µ¥Ø内®e                      ¦U¼Ë¼Æ¾Ú                                       
22-Dec-23        A               02F-08F         WO-J057-022        02F-08Fµ¡¥É                  WS        -        -        -        -        -

²Ä¤@   Layout Dwg ùØ­±¤À§G¹Ï¸¹¦b Frame per Dwg ¨S¦³ªº¤À§G¹Ï¡A­n¿z¿ï¦bPart List
²Ä¤G   ®Ú¾Ú Frame Per Dwg ùØ­±ªº²Õ¸Ë¹Ï¸¹¡A¦bPart List ¿z¿ï¥X¨Ó, (¥uÅã¥Ü WO No ¦U¼Ë¼Æ¾Ú¦³ªº¬ÛÃö¦r¥À¡A¥H¤W¦C¬OWS¦rÀYªº¤~¥X²{¡^
½Ð°Ñ¦Ò ªþ¥óData µ{¦¡³W«h¿ù»~¡C

¤£ª¾¬O§_¦]爲³o­Ó°ÝÃD¡A¾É­PForm ³o­Óµ{¦¡¹B¦æ¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-23 16:38

¦^´_ 45# 198188


    ¤Ó¿N¸£¤F,©ñ°²«á¦A¼·ªÅ¤U¸ü¸Õ¸Õ
§@ªÌ: 198188    ®É¶¡: 2025-10-23 16:44

¦^´_  198188


    ¤Ó¿N¸£¤F,©ñ°²«á¦A¼·ªÅ¤U¸ü¸Õ¸Õ
Andy2483 µoªí©ó 2025-10-23 16:38



    ¦³³Ò«e½ú¤F¡C
§@ªÌ: 198188    ®É¶¡: 2025-10-27 10:54

¥»©«³Ì«á¥Ñ 198188 ©ó 2025-10-27 11:07 ½s¿è
  1. Sub Data()
  2. Dim Brr, Z, Q, i&, j%, N&, T$, T1$, MyPath$, xFile$, xBook As Workbook, MyBook As Workbook, Re

  3. Sheets("WO No").Range("A2").EntireRow.Delete
  4. Sheets("Layout Dwg").Range("A2:D66500").ClearContents
  5. Sheets("Frame per Dwg").Range("A2:F66500").ClearContents
  6. Sheets("Part List").Range("A2:M66500").ClearContents

  7. Set Z = CreateObject("Scripting.Dictionary")
  8. Set MyBook = ThisWorkbook
  9. MyPath = MyBook.Path & "\"
  10. xFile = "Data Base.xlsx"
  11. On Error Resume Next
  12. Set xBook = Workbooks(xFile)
  13. If xBook Is Nothing Then
  14.    Set xBook = Workbooks.Open(MyPath & xFile, , True, , "")
  15.    Re = True
  16.    MyBook.Activate
  17. End If
  18. On Error GoTo 0

  19. T = Sheets("Read").[A2] & "|" & Sheets("Read").[C2]
  20. T1 = Sheets("Read").[B2]

  21. With xBook.Sheets("WO No")
  22.    For i = 2 To .[A65536].End(3).Row
  23.       If .Cells(i, "B") & "|" & .Cells(i, "D") = T Then
  24.          .Rows(i).Copy Sheets("WO No").Rows(2)
  25.          Sheets("Read").[A2].Resize(, 3).Copy Sheets("WO No").[B2]
  26.          GoTo 11
  27.       End If
  28.    Next
  29.    
  30.    MsgBox "Nothing": Exit Sub
  31.    
  32. End With
  33. '===================================================================================
  34. 11
  35. If T1 Like "##F-*##F" Then
  36.    For i = Val(T1) To Val(StrReverse(Mid(StrReverse(T1), 2, 2)))
  37.       Z(Format(i, "00F")) = ""
  38.    Next
  39.    Else
  40.    Q = Split(T1 & "&" & T1, "&")
  41.    For i = 0 To UBound(Q)
  42.       Z(Q(i)) = 0
  43.    Next
  44. End If

  45. Brr = xBook.Sheets("Layout Dwg").[A1].CurrentRegion
  46. For i = 2 To UBound(Brr)
  47.    If Z.Exists(Brr(i, 2)) Then
  48.    If Brr(i, 4) = Sheets("Read").[A2] Then
  49.       Z(Brr(i, 1)) = Z(Brr(i, 1)) + Val(Brr(i, 3))
  50.       N = N + 1
  51.       For j = 1 To 4: Brr(N, j) = Brr(i, j): Next
  52.    End If
  53.    End If
  54. Next
  55. If N > 0 Then Sheets("Layout Dwg").[A2].Resize(N, 4) = Brr: N = 0 Else MsgBox "Nothing under the floor"


  56. Brr = xBook.Sheets("Frame per Dwg").[A1].CurrentRegion
  57. For i = 2 To UBound(Brr)
  58.    If Z(Brr(i, 1)) > 0 Then
  59.       N = N + 1
  60.       For j = 1 To 6: Brr(N, j) = Brr(i, j): Next
  61.       Brr(N, 5) = Brr(N, 5) * Z(Brr(i, 1))
  62.    End If
  63. Next
  64. If N > 0 Then Sheets("Frame per Dwg").[A2].Resize(N, 6) = Brr: N = 0
  65. '===========================================================================
  66. Brr = xBook.Sheets("Part List").[A1].CurrentRegion
  67. For i = 2 To UBound(Brr)
  68.    If Z(Brr(i, 7)) > 0 Then
  69.       N = N + 1
  70.       For j = 1 To 13: Brr(N, j) = Brr(i, j): Next
  71.       Brr(N, 3) = Brr(N, 3) * Z(Brr(i, 7))
  72.    End If
  73. Next
  74. If N > 0 Then Sheets("Part List").[A2].Resize(N, 13) = Brr
  75. '==================================================================

  76. A = Sheets("WO No").Range("F2")
  77. b = Sheets("WO No").Range("G2")
  78. C = Sheets("WO No").Range("H2")
  79. d = Sheets("WO No").Range("I2")
  80. e = Sheets("WO No").Range("J2")
  81. f = Sheets("WO No").Range("K2")


  82. G = Sheets("Part List").Range("A1").CurrentRegion.Rows.Count + 1

  83. Brr = Sheets("Frame per Dwg").[A1].CurrentRegion
  84.   For i = 2 To UBound(Brr)
  85.   If Mid(Brr(i, 2), 1, 2) = A Or Mid(Brr(i, 2), 1, 2) = b Or Mid(Brr(i, 2), 1, 2) = C Or Mid(Brr(i, 2), 1, 2) = d Or Mid(Brr(i, 2), 1, 2) = e Or Mid(Brr(i, 2), 1, 2) = f Then
  86.    Z(Brr(i, 2)) = Z(Brr(i, 2))
  87.       N = N + 1
  88.       For j = 1 To 6: Brr(N, j) = Brr(i, j): Next
  89.    End If

  90. Next

  91. N = 1
  92. Arr = xBook.Sheets("Part List").[A1].CurrentRegion
  93. For i = 2 To UBound(Arr)
  94.    If Z.Exists(Arr(i, 8)) Then
  95.       N = N + 1
  96.       For j = 1 To 13
  97.       Arr(N, j) = Arr(i, j)
  98.       Next j
  99.       Arr(N, 5) = Arr(N, 5) * Z(Arr(i, 7))
  100.    End If
  101. Next
  102. If N > 0 Then Sheets("Part List").Range("A" & G).Resize(N, 13) = Arr

  103. Sheets("Part List").Select
  104. Rows(G).Select
  105. Selection.Delete Shift:=xlUp
  106. If Re = True Then xBook.Close 0

  107. End Sub
½Æ»s¥N½X
¦^´_  198188


    ¤Ó¿N¸£¤F,©ñ°²«á¦A¼·ªÅ¤U¸ü¸Õ¸Õ
Andy2483 µoªí©ó 2025-10-23 16:38


«e½ú¡APart List ³¡¤À¡A§Ú¸Ñ¨M¤F¤@³¡¤À¡A¦ý¬O¥X¨Óªº¸ê®Æ¡AÁÙ¬O¤£§¹¾ã¡C

»sªí³¡¤À¡A¬O®Ú¾Ú¤§«e¾É¥Xªº ¡§Part List ¡¨内ªº¸ê®Æ¡A¨Ó»sªí¡C
§Ú¹B§@«á¡Aµo²{¬O¥d¦b¥´¶}·sªºExcel ·s¼W Sheet ¨ºùØ¥d¦í¡A¤£À´±o·s¼W¡C
§@ªÌ: 198188    ®É¶¡: 2025-10-27 11:31

«e½ú¡APart List ³¡¤À¡A§Ú¸Ñ¨M¤F¤@³¡¤À¡A¦ý¬O¥X¨Óªº¸ê®Æ¡AÁÙ¬O¤£§¹¾ã¡C

»sªí³¡¤À¡A¬O®Ú¾Ú¤§«e¾É¥Xªº ...
198188 µoªí©ó 2025-10-27 10:54


If Z.Exists(Brr(i, 2)) Then
³o¥yÀ³¸Ó¦p¦ó­×§ï¡A§Ú·Q§ä´M¥]§t BC132 (Brr(i,2)) ªº¦r¥Àªº¼Æ¾Ú¡H
BC132
BC132a
BC132b
BC132c
§@ªÌ: Andy2483    ®É¶¡: 2025-10-27 15:31

¥»©«³Ì«á¥Ñ 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
§@ªÌ: 198188    ®É¶¡: 2025-10-27 16:05

¦^´_  198188
[attach]38173[/attach]

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

Option Explicit
Dim A, Z, R&, W, L, i&, Brr, Mrr, Q, Dr ...
Andy2483 µoªí©ó 2025-10-27 15:31



³o­Ó¬O»sªí³¡¤À¶Ü¡H
§Ú«e­±Part List ©â¨ú¸ê®Æ³¡¤À¡A¯à§_À°§Ú¬Ý¬Ý¡A¦pªþ¹Ï³W«h¡C¦]爲³oùØ¥d¦í¡A©Ò¥H·|¼vÅT¨îªíªºµ²ªG¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-27 16:29

¦^´_ 51# 198188


    "«e­±Part List ©â¨ú¸ê®Æ³¡¤À"  ¬O­þ¤@¼Ó¼h¤è®×¤£²Å¦X»Ý¨D?
§@ªÌ: 198188    ®É¶¡: 2025-10-27 17:43

¦^´_  198188


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

Option Explicit
Sub TEST_2()
Dim Brr, Z, Q, i&, j%, N&, T$ ...
Andy2483 µoªí©ó 2025-10-13 13:21


Brr = xBook.Sheets("Part List").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z(Brr(i, 7)) > 0 Then
      N = N + 1
      For j = 1 To 13: Brr(N, j) = Brr(i, j): Next
      Brr(N, 3) = Brr(N, 3) * Z(Brr(i, 7))
   End If
Next
If N > 0 Then Sheets("Part List").[A2].Resize(N, 13) = Brr Else MsgBox "Part List_Nothing"

[attach]38174[/attach]

«e½ú¬O³o­Ó³¡¤Àªº¸ê®Æ¤£¥¿½T¡AÀ³¸Ó¥H¹Ï¤ùªº³W«h¿z¿ïPART LIST¸ê®Æ¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-27 19:36

¦^´_ 53# 198188
»Ý­n¥H#13°õ¦æ#8½d¨Òªºµ²ªG¦p¦ó¿ù¡A¥¿½T­È¤S¸Ó¦p¦ó§e²{¡H»¡©ú¥¿½T»P¿ù»~®t²§
§@ªÌ: 198188    ®É¶¡: 2025-10-28 09:30

¦^´_  198188
»Ý­n¥H#13°õ¦æ#8½d¨Òªºµ²ªG¦p¦ó¿ù¡A¥¿½T¤S¸Ó¦p¦ó§e²{¡H»¡©ú¥¿½T»P¿ù»~®t²§
Andy2483 µoªí©ó 2025-10-27 19:36


[attach]38175[/attach]

³W«h¦³3­Ó¡G
1) Layout Dwg ùØ­±¹Ï¸¹ ¨S¦³¦b Frame per Dwg ¥X²{ªº¡A´NÅã¥Ü¦b Part List  = ³o­Óok ¤F

2) Frame per Dwg ªº ÄæB ²Õ¸Ë¹Ï¸¹ ¥]§t WO No  ÄæF - ÄæK ªº¦U¼Ë¼Æ¾Ú¦r¥À¡A´NÅã¥Ü¦b Part List = ³o­Óok ¤F

3) ¹Ï¤ùLayout Dwg ¦³¤U­±5­Ó¹Ï¸¹¡A¦bFrame per Dwg ¨S¦³¥X²{¡A©Ò¥H»Ý­n¦b Part List ùØÅã¥Ü¥X¨Ó¡C ¤£¹L¦bPart List ùØ­±ªº¹Ï¸¹¡A¦³¥i¯à³Ì«á¥[¤@­Ó¤p¼gªº­^¤å¦r¥À¡Aa/b/c/d.... ©Ò¥H»Ý­n¦A¥[¤@­ÓRule, ¦pªGPart List ³Ì«á¤@­Ó¦r¥À¬O¤p¼g¡A¨º麽 Part List ªº¹Ï¸¹¥]§tLaybout Dwg ªº¹Ï¸¹¡A´N­nÅã¥Ü¥X¨Ó¡C¦p¹Ï¤ù¡C = ³o­Ó¨S°µ¨ì

Layout DwgùØ­±¦³
MWB03
MWB04
MWB05
MWB06
MWB07
  
Part List  ùØ­±¦³
MWB03a
MWB04b
MWB05c
MWB06e
MWB07b
§@ªÌ: 198188    ®É¶¡: 2025-10-28 10:11

³W«h¦³3­Ó¡G
1) Layout Dwg ùØ­±¹Ï¸¹ ¨S¦³¦b Frame per Dwg ¥X²{ªº¡A´NÅã¥Ü¦b Part List  = ³o­Óo ...
198188 µoªí©ó 2025-10-28 09:30


¤W­Ó¶K¦]爲­×§ï¶W®É¡A©Ò¥H§ï¤£¤F¡A½Ð¥H³o­Ó爲·Ç¡C

[attach]38179[/attach][attach]38180[/attach]

    ³W«h¦³3­Ó¡G
1) Layout Dwg ùØ­±¹Ï¸¹ ¨S¦³¦b Frame per Dwg ¥X²{ªº¡A´NÅã¥Ü¦b Part List  = ³o­Óok ¤F, ¤£¹L»Ý­n¥[¤W ³W«h3

2) Frame per Dwg ªº ÄæB ²Õ¸Ë¹Ï¸¹ ¥]§t WO No  ÄæF - ÄæK ªº¦U¼Ë¼Æ¾Ú¦r¥À¡A´NÅã¥Ü¦b Part List = ³o­Óok ¤F¡A¤£¹L¦h¤F¤U­±³o¨Ç¤£À³¸Ó¥X²{ªº¹Ï¸¹
§å¦¸¦¸§Ç        ¼Ó¼h        ¥Í²£³æ¸¹                     ¦U¼Ë¼Æ¾Ú
A                    02F-08F        WO-J057-022           WS

¦bLayout Dwg ¨S¦³¤U­±³o¨Ç¹Ï¸¹¡A¦ý¬O¹B¦æ«á­±¡APart List ¥X²{³o¨Ç¹Ï¸¹
WS001, WS003, WS004, WS100,  WS101, WS102, WS600, WS601, WS602, WS603

3) ¹Ï¤ùLayout Dwg ¦³¤U­±5­Ó¹Ï¸¹¡A¦bFrame per Dwg ¨S¦³¥X²{¡A©Ò¥H»Ý­n¦b Part List ùØÅã¥Ü¥X¨Ó¡C ¤£¹L¦bPart List ùØ­±ªº¹Ï¸¹¡A¦³¥i¯à³Ì«á¥[¤@­Ó¤p¼gªº­^¤å¦r¥À¡Aa/b/c/d.... ©Ò¥H»Ý­n¦A¥[¤@­ÓRule, ¦pªGPart List ³Ì«á¤@­Ó¦r¥À¬O¤p¼g¡A¨º麽 Part List ªº¹Ï¸¹¥]§tLaybout Dwg ªº¹Ï¸¹¡A´N­nÅã¥Ü¥X¨Ó¡C¦p¹Ï¤ù¡C = ³o­Ó¨S°µ¨ì

Layout DwgùØ­±¦³
MWB02
MWB03
MWB04
MWB05
MWB06
MWB07

  
Part List  ùØ­±¦³
MWB02b
MWB03b
MWB04b
MWB05b
MWB06b
MWB07b
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 10:38

¦^´_ 55# 198188


    ½Ð±N¥H¤U
For i = 2 To UBound(Brr)
   If Z(Brr(i, 7)) > 0 Then
      N = N + 1
      For j = 1 To 13: Brr(N, j) = Brr(i, j): Next
      Brr(N, 3) = Brr(N, 3) * Z(Brr(i, 7))
   End If
Next

§ï¬°
For i = 2 To UBound(Brr)
   If Brr(i, 7) Like "*[a-z]" Then Q = Left(Brr(i, 7), Len(Brr(i, 7)) - 1) Else Q = ""
   If Z(Brr(i, 7)) > 0 Or Z(Q) > 0 Then
      N = N + 1
      For j = 1 To 13: Brr(N, j) = Brr(i, j): Next
      Brr(N, 3) = Brr(N, 3) * Z(Brr(i, 7))
   End If
Next

¸Õ¸Õ¬Ý
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 10:48

¦^´_ 55# 198188


   
Brr(N, 3) = Brr(N, 3) * Z(Brr(i, 7))

³o¦æ¤]­n§ï¦¨¥H¤U,¼Æ¶q¤~·|¬O0

Brr(N, 3) = Brr(N, 3) * (Z(Brr(i, 7)) + Z(Q))
§@ªÌ: 198188    ®É¶¡: 2025-10-28 11:04

  1. Sub TEST_2()
  2. Dim Brr, Z, Q, i&, j%, N&, T$, T1$, MyPath$, xFile$, xBook As Workbook, MyBook As Workbook, Re
  3. Application.ScreenUpdating = False
  4. With Sheets("Layout Dwg")
  5.    .[A2].Resize(.UsedRange.Rows.Count, 4).ClearContents
  6. End With
  7. With Sheets("Frame per Dwg")
  8.    .[A2].Resize(.UsedRange.Rows.Count, 6).ClearContents
  9. End With
  10. With Sheets("Part List")
  11.    .[A2].Resize(.UsedRange.Rows.Count, 13).ClearContents
  12. End With
  13. Set MyBook = ThisWorkbook
  14. MyPath = MyBook.Path & "\"
  15. xFile = "Data Base.xlsx"
  16. On Error Resume Next
  17. Set xBook = Workbooks(xFile)
  18. If xBook Is Nothing Then
  19.    Set xBook = Workbooks.Open(MyPath & xFile, , True, , "")
  20.    Re = True
  21.    MyBook.Activate
  22. End If
  23. Set Z = CreateObject("Scripting.Dictionary")
  24. On Error GoTo 0
  25. T = Sheets("Read").[A2] & "|" & Sheets("Read").[C2]
  26. T1 = Sheets("Read").[B2]
  27. With xBook.Sheets("WO No")
  28.    For i = 2 To .[A65536].End(3).Row
  29.       If .Cells(i, "B") & "|" & .Cells(i, "D") = T Then
  30.          .Rows(i).Copy Sheets("WO No").Rows(2)
  31.          For j = 6 To 11
  32.             Z("|" & .Cells(i, j)) = ""
  33.          Next
  34.          Sheets("Read").[A2].Resize(, 3).Copy Sheets("WO No").[B2]
  35.          GoTo 11
  36.       End If
  37.    Next
  38.    MsgBox "Nothing": Exit Sub
  39. End With
  40. 11
  41. If T1 Like "##F-*##F" Then
  42.    For i = Val(T1) To Val(StrReverse(Mid(StrReverse(T1), 2, 2)))
  43.       Z(Format(i, "00F")) = ""
  44.    Next
  45.    Else
  46.    Q = Split(T1 & "&" & T1, "&")
  47.    For i = 0 To UBound(Q)
  48.       Z(Q(i)) = 0
  49.    Next
  50. End If
  51. Brr = xBook.Sheets("Layout Dwg").[A1].CurrentRegion
  52. For i = 2 To UBound(Brr)
  53.    If Z.Exists(Brr(i, 2)) Then
  54.       If Brr(i, 4) = Sheets("Read").[A2] Then
  55.          Z(Brr(i, 1)) = Z(Brr(i, 1)) + Val(Brr(i, 3))
  56.          N = N + 1
  57.          For j = 1 To 4: Brr(N, j) = Brr(i, j): Next
  58.    End If
  59.    End If
  60. Next
  61. If N > 0 Then Sheets("Layout Dwg").[A2].Resize(N, 4) = Brr: N = 0 Else MsgBox "Nothing under the floor": GoTo 12
  62. Brr = xBook.Sheets("Frame per Dwg").[A1].CurrentRegion
  63. For i = 2 To UBound(Brr)
  64.    If Z.Exists("|" & Left(Brr(i, 2), 2)) And Z(Brr(i, 1)) > 0 Then
  65.       N = N + 1
  66.       For j = 1 To 6: Brr(N, j) = Brr(i, j): Next
  67.       Brr(N, 5) = Brr(N, 5) * Z(Brr(i, 1))
  68.    End If
  69. Next
  70. If N > 0 Then Sheets("Frame per Dwg").[A2].Resize(N, 6) = Brr: N = 0 Else MsgBox "Frame per Dwg_Nothing"
  71. Brr = xBook.Sheets("Part List").[A1].CurrentRegion
  72. For i = 2 To UBound(Brr)
  73.    If Brr(i, 7) Like "*[a-z]" Then Q = Left(Brr(i, 7), Len(Brr(i, 7)) - 1) Else Q = ""
  74.    If Z(Brr(i, 7)) > 0 Or Z(Q) > 0 Then
  75.       N = N + 1
  76.       For j = 1 To 13: Brr(N, j) = Brr(i, j): Next
  77.       Brr(N, 3) = Brr(N, 3) * (Z(Brr(i, 7)) + Z(Q))
  78.    End If
  79. Next
  80. If N > 0 Then Sheets("Part List").[A2].Resize(N, 13) = Brr Else MsgBox "Part List_Nothing"
  81. 12: If Re = True Then xBook.Close 0
  82. End Sub
½Æ»s¥N½X
¦^´_  198188


   
Brr(N, 3) = Brr(N, 3) * Z(Brr(i, 7))

³o¦æ¤]­n§ï¦¨¥H¤U,¼Æ¶q¤~·|¬O0

Br ...
Andy2483 µoªí©ó 2025-10-28 10:48


³o­Ó¤£¹ï¡A§ï¤F³o­Ó Frame per Dwg Åܦ¨¤F ¥u¦³ WS ªº²Õ¸Ë¹Ï¸¹¡A¨ä¥Lªº¤£¥X²{¡C

§Ú­è­è»¡ªº¬O°w¹ï Part List ªº内®e¡A Frame per Dwg ¤§«eªº内®e¬O¥¿½Tªº¡C

Frame per Dwg 内®e³W«h¡G
¦b Frame per Dwg ¾É¥X »P Layout Dwg ¬Û¦Pªº¤À§G¹Ï¸¹¡ALayout Dwg¬Û¦P¹Ï¸¹¼Æ¶q¬Û¥[ µM«á¸ò Frame per Dwg ¼Æ¶q¬Û­¼

Part List  内®e³W«h¡G
1¡^ Layout Dwg ¤À§G¹Ï¸¹ ¦b Frame per Dwg ùØ­±¨S¦³¥X²{ªº¡A­n¦b Part List ¥X²{¡A¼Æ¶q¬Û­¼
2¡^¦b¤W­±³W«h¤U¡Aªþ¥[¦h¤@­Ó±ø¥ó¡A¦pªG Part List ¤À§G¹Ï¸¹ ³Ì«á¤@­Ó¦r¥À¬O¤p¼g­^¤å¦r¥À¡A¨º麽 Part List ¤À§G¹Ï¸¹ ¥]§t Layout Dwg ¤À§G¹Ï¸¹ ªº¤]Åã¥Ü¥X¨Ó¡C
3¡^Frame per Dwg ªº²Õ¸Ë¹Ï ÄæB §t¦³ WO No ªº Äæ F - K ¦U¼Ë¼Æ¾Ú¦r¥À¡A­n¦b Part List ¥X²{ ¼Æ¶q¬Û­¼
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 11:26

¦^´_ 59# 198188


    Layout Dwg ¤À§G¹Ï¸¹ ¦b Frame per Dwg ùØ­±¨S¦³¥X²{ªº¡A­n¦b Part List ¥X²{¡A¼Æ¶q¬Û­¼
³o¨âªíÄæ¦ì¤£¦P! ¸Ó¦p¦ó ¦b Part List ¥X²{¡A¼Æ¶q¬Û­¼
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 11:41

¦^´_ 59# 198188


    Layout Dwg ¤À§G¹Ï¸¹ ¦b Frame per Dwg ùØ­±¨S¦³¥X²{ªº¡A­n¦b Part List ¥X²{¡A¼Æ¶q¬Û­¼
ÁÙ¬O ayout Dwg ¤À§G¹Ï¸¹ ¦b Frame per Dwg ¥X²{¹Lªº,¦b Part List ¤£¯à­«½Æ¿z¥X¨Ó
§@ªÌ: 198188    ®É¶¡: 2025-10-28 11:47

¦^´_  198188


    Layout Dwg ¤À§G¹Ï¸¹ ¦b Frame per Dwg ùØ­±¨S¦³¥X²{ªº¡A­n¦b Part List ¥X²{¡A¼Æ¶q ...
Andy2483 µoªí©ó 2025-10-28 11:26


[attach]38181[/attach]
§@ªÌ: 198188    ®É¶¡: 2025-10-28 11:48

¦^´_  198188


    Layout Dwg ¤À§G¹Ï¸¹ ¦b Frame per Dwg ùØ­±¨S¦³¥X²{ªº¡A­n¦b Part List ¥X²{¡A¼Æ¶q ...
Andy2483 µoªí©ó 2025-10-28 11:26


[attach]38182[/attach]
Layout Dwg ¤À§G¹Ï¸¹ ¦b Frame per Dwg ùØ­±¨S¦³¥X²{ªº¡A­n¦b Part List ¥X²{¡A¼Æ¶q¤è¦¡¦p¤W¹Ï
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 11:59

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

¦^´_ 63# 198188


   
1.¦b Frame per Dwg ¦³¥X²{ªº, ¦bPart List ´N¤£¯à¥X²{¶Ü?
2.¯à§ì­Ó°õ¦æ«á¿ù»~ªº¹Ï¤ù¸ò¥¿½Tªº°µ¤@¤U»¡©ú?
§@ªÌ: 198188    ®É¶¡: 2025-10-28 12:43

¦^´_  198188


   
1.¦b Frame per Dwg ¦³¥X²{ªº, ¦bPart List ´N¤£¯à¥X²{¶Ü?
2.¯à§ì­Ó°õ¦æ«á¿ù»~ªº ...
Andy2483 µoªí©ó 2025-10-28 11:59


[attach]38183[/attach][attach]38184[/attach][attach]38185[/attach]

§Ú±N Frame per Dwg & Part List ªº³W«h©M¼Æ¶q­pºâ¤è¦¡¡A­«·s¥Î¹Ïªí¦C¥X説©úªþ¥óExcel ¤Î¹Ï¤ù

Frame per Dwg ¥u¦³¤@­Ó³W«h

Part List ¦³¨â­Ó¤j³W«h¡A¨ä¤¤¤@­Ó¤j³W«hªþ±a¤@­Ó¤p³W«h
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 12:46

¦^´_ 65# 198188


    ¿z¥Xªº¸ê®Æ¬O¦h¥X¨Ó ÁÙ¬Oµu¤Ö¤F? ¤£À´§xÂZ¦b­þ¸Ì?
§@ªÌ: 198188    ®É¶¡: 2025-10-28 13:58

¦^´_  198188


    ¿z¥Xªº¸ê®Æ¬O¦h¥X¨Ó ÁÙ¬Oµu¤Ö¤F? ¤£À´§xÂZ¦b­þ¸Ì?
Andy2483 µoªí©ó 2025-10-28 12:46


¥Î#13ªºµ{¦¡¡A¸ê®Æ¥X²{¤°麽°ÝÃD¦b#56説©ú

¥Î#57 & #58 ªºµ{¦¡¡A¸ê®Æ¥X²{¤°麽°ÝÃD¦b#59説©ú¡C

³W«h¤Î½d¨Ò ¦b#65 説©ú¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 14:00

¦^´_ 67# 198188


    ¿z¥Xªº¸ê®Æ¬O¦h¥X¨Ó ÁÙ¬Oµu¤Ö¤F?
§@ªÌ: 198188    ®É¶¡: 2025-10-28 14:09

¦^´_  198188


    ¿z¥Xªº¸ê®Æ¬O¦h¥X¨Ó ÁÙ¬Oµu¤Ö¤F?
Andy2483 µoªí©ó 2025-10-28 14:00


Frame per Dwg ¸ê®Æ¤Ö¤F¡AÀ³¸Ó¥Î#13 ªºµ{¦¡¤~¹ï¡C
Frame per Dwg 内®e³W«h¡G
¦b Frame per Dwg ¾É¥X »P Layout Dwg ¬Û¦Pªº¤À§G¹Ï¸¹¡ALayout Dwg¬Û¦P¹Ï¸¹¼Æ¶q¬Û¥[ µM«á¸ò Frame per Dwg ¼Æ¶q¬Û­¼

Part List¸ê®Æ¤Ö¤F¡A¨S¦³ §t¦³ WS ªº¸ê®Æ
Part List  内®e³W«h¡G
1¡^ Layout Dwg ¤À§G¹Ï¸¹ ¦b Frame per Dwg ùØ­±¨S¦³¥X²{ªº¡A­n¦b Part List ¥X²{¡A¼Æ¶q¬Û­¼
2¡^¦b¤W­±³W«h¤U¡Aªþ¥[¦h¤@­Ó±ø¥ó¡A¦pªG Part List ¤À§G¹Ï¸¹ ³Ì«á¤@­Ó¦r¥À¬O¤p¼g­^¤å¦r¥À¡A¨º麽 Part List ¤À§G¹Ï¸¹ ¥]§t Layout Dwg ¤À§G¹Ï¸¹ ªº¤]Åã¥Ü¥X¨Ó¡C
3¡^Frame per Dwg ªº²Õ¸Ë¹Ï ÄæB §t¦³ WO No ªº Äæ F - K ¦U¼Ë¼Æ¾Ú¦r¥À¡A­n¦b Part List ¥X²{ ¼Æ¶q¬Û­¼
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 14:36

¦^´_ 69# 198188


1.¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹(¨äCÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:LD¦X­p¼Æ¶q) ­n¤ñ¹ï Data Base ¸ÌPart ListªíªºGÄæ ¹ïÀ³²Õ¸Ë¸¹/¥[¤u¥ó¸¹
1.1.­Y§k¦X®É¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q
1.1.­YData Base ¸ÌPart ListªíGÄæ¦r¦ê§À³¡¦h¤F­Ó¤p¼g­^¤å¦r¥À¥h°£«á¤]§k¦X ¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹ ®É,¤]¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q

2.¥»ÀɪºFrame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ (¨äEÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:FD¦X­p¼Æ¶q) ¤]­n¤ñ¹ï Data Base ¸ÌPart ListªíªºGÄæ ¹ïÀ³²Õ¸Ë¸¹/¥[¤u¥ó¸¹
2.1.­Y§k¦X®É¾ã¦C¤]±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*FD¦X­p¼Æ¶q

¥H¤W±Ô­z¬O§_¥¿½T?
§@ªÌ: 198188    ®É¶¡: 2025-10-28 14:52

¦^´_  198188


1.¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹(¨äCÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙD¦X­p¼Æ¶q) ­n¤ñ¹ï Dat ...
Andy2483 µoªí©ó 2025-10-28 14:36


Part List ªí¸ê®ÆÅã¥Ü³W«h¦p¤U¡G
1.¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹(¨äCÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:LD¦X­p¼Æ¶q) ­n¤ñ¹ï Data Base ¸ÌPart ListªíªºGÄæ ¹ïÀ³²Õ¸Ë¸¹/¥[¤u¥ó¸¹
1.1.­Y§k¦X®É¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q
1.1.­YData Base ¸ÌPart ListªíGÄæ¦r¦ê§À³¡¦h¤F­Ó¤p¼g­^¤å¦r¥À¥h°£«á¤]§k¦X ¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹ ®É,¤]¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q
¥H¤W¥¿½T

2.¥»ÀɪºFrame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ (¨äEÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:FD¦X­p¼Æ¶q) ¤]­n¤ñ¹ï Data Base ¸ÌPart ListªíªºGÄæ ¹ïÀ³²Õ¸Ë¸¹/¥[¤u¥ó¸¹
2.1 Frame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ »Ý­n§t¦³ WO No ªíªº F - K Äæ ªº ¦r¥À  WO No ªíªº F - K Äæ ªº ¦r¥À ¦³ "FG", ¨º麽¥u©â¨ú Frame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ §t¦³ "FG"
2.2.­Y§k¦X®É¾ã¦C¤]±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*FD¦X­p¼Æ¶q

Frame per Dwg ªí¸ê®ÆÅã¥Ü³W«h¦p¤U¡G
1. ¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹(¨äCÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:LD¦X­p¼Æ¶q) ­n¤ñ¹ï Data Base ¸ÌFrame per Dwg ªíªºAÄæ ¤À§G¹Ï¸¹
1.1 ­Y§k¦X®É¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºFrame per Dwg,¨ä¤¤EÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 15:10

¦^´_ 71# 198188


Part List ªí¸ê®ÆÅã¥Ü³W«h¦p¤U¡G
1.¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹(¨äCÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:LD¦X­p¼Æ¶q) ­n¤ñ¹ï Data Base ¸ÌPart ListªíªºGÄæ ¹ïÀ³²Õ¸Ë¸¹/¥[¤u¥ó¸¹
1.1.­Y§k¦X®É¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q
1.1.­YData Base ¸ÌPart ListªíGÄæ¦r¦ê§À³¡¦h¤F­Ó¤p¼g­^¤å¦r¥À¥h°£«á¤]§k¦X ¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹ ®É,¤]¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q
¥H¤W¥¿½T

2.¥»ÀɪºFrame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ (¨äEÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:FD¦X­p¼Æ¶q) ¤]­n¤ñ¹ï Data Base ¸ÌPart ListªíªºGÄæ ¹ïÀ³²Õ¸Ë¸¹/¥[¤u¥ó¸¹
2.1 Frame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ »Ý­n§t¦³ WO No ªíªº F - K Äæ ªº ¦r¥À  WO No ªíªº F - K Äæ ªº ¦r¥À ¦³ "FG", ¨º麽¥u©â¨ú Frame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ §t¦³ "FG"
2.2.­Y§k¦X®É¾ã¦C¤]±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*FD¦X­p¼Æ¶q

Frame per Dwg ªí¸ê®ÆÅã¥Ü³W«h¦p¤U¡G
3. ¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹(¨äCÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:LD¦X­p¼Æ¶q) ­n¤ñ¹ï Data Base ¸ÌFrame per Dwg ªíªºAÄæ ¤À§G¹Ï¸¹
3.1 ­Y§k¦X®É¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºFrame per Dwg,¨ä¤¤EÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q
¥H¤W¤j­P¤F¸Ñ,¥tºÃ°Ý:

4.¦³¨S¦³­«½Æªº±¡ªp:
4.1.¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹ »P ¥»ÀɪºFrame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ ¬Û¦P,·|³y¦¨­«½Æ¿z¥X?
4.2.¦pªG¦³¸Ó¦p¦ó³B²z

§@ªÌ: 198188    ®É¶¡: 2025-10-28 15:27

¦^´_  198188


Part List ªí¸ê®ÆÅã¥Ü³W«h¦p¤U¡G
1.¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹(¨äCÄæ¼Æ¶q­n¥[ ...
Andy2483 µoªí©ó 2025-10-28 15:10


4.¦³¨S¦³­«½Æªº±¡ªp:
4.1.¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹ »P ¥»ÀɪºFrame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ ¬Û¦P,·|³y¦¨­«½Æ¿z¥X?
4.2.¦pªG¦³¸Ó¦p¦ó³B²z

1. ¥»ÀÉ Layout Dwg ªí ªºAÄæ ¤À§G¹Ï¸¹·|­«½Æ¦h­Ó¡C(±N¬Û¦P¤À§G¹Ï¸¹ Âk¯Ç ¤@­Ó¡A¼Æ¶q¥[Á`¡A¦AŪ¨ú¸ê®Æ¡^
1.1. ­«½Æ¤À§G¹Ï¥u©â¨ú¤@¦¸ Data Base ªº Frame per Dwg ªí ªºAÄæ¡A¦]爲¥»ÀÉ Layout Dwg ªí ªºCÄæ¼Æ¶q¤w¸g¥[Á`¡A©Ò¥H¤£¼vÅT¨ä¥L¼Æ¾Ú¡C
1.2. ­«½Æ¤À§G¹Ï¥u©â¨ú¤@¦¸ Data Base ªº Part List ªí ªº H Äæ¡A¦]爲¥»ÀÉ Layout Dwg ªí ªºCÄæ¼Æ¶q¤w¸g¥[Á`¡A©Ò¥H¤£¼vÅT¨ä¥L¼Æ¾Ú¡C

2. ¥»ÀÉFrame per Dwg ªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ ¤]·|­«½Æ¦h­Ó¡C(±N¬Û¦P²Õ¸Ë¹Ï¸¹ Âk¯Ç ¤@­Ó¡A¼Æ¶q¥[Á`¡A¦AŪ¨ú¸ê®Æ¡^
2.1 ­«½Æ¤À§G¹Ï¥u©â¨ú¤@¦¸ Data Base ªº Part List ªí ªºHÄæ¡A¦]爲¥»ÀÉ Frame per Dwg  ªí ªºEÄæ¼Æ¶q¤w¸g¥[Á`¡A©Ò¥H¤£¼vÅT¨ä¥L¼Æ¾Ú¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 15:52

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

¦^´_ 73# 198188


4.1.¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹ »P ¥»ÀɪºFrame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ ¬Û¦P,·|³y¦¨­«½Æ¿z¥X?
³o«üªº¬O¨âªí¤£¦PÄæ¦ì,¦ý«o¬O¹Ï¸¹¬Û¦Pªº±¡ªp,³y¦¨¿z¥X Part Listªí¨âµ§¥H¤W¬Û¦P¸ê®Æ,·|¦³³oºØª¬ªp¶Ü?
­Y¦³¸Ó¦p¦ó³B²z?

¨Ò¦p:¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹ ¦³ BW103, ¥»ÀɪºFrame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ ¤]¦³ BW103
§@ªÌ: 198188    ®É¶¡: 2025-10-28 16:06

¦^´_  198188


4.1.¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹ »P ¥»ÀɪºFrame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ ¬Û¦P ...
Andy2483 µoªí©ó 2025-10-28 15:52


[attach]38188[/attach]

«e½ú«üªº¬OPart List ªí­nÅã¥Üªº¸ê®Æ¶Ü¡H
¨âªÌ¤£½Ä¬ðªº
1. ¥»ÀÉ Layout Dwgªí  ¬O Ū¨ú AÄæ ¤À§G¹Ï¸¹ ¡]¬O¨ú¦b¥»ÀÉ Frame per Dwg ùØ­±¨S¦³³o­Ó¤À§G¹Ïªº¨º¨Ç¹Ï¸¹¡^¹ïÀ³ Data Base ÀÉ Part List Äæ H ªº¤À§G¹Ï½s¸¹
2. ¥»ÀÉ Frame per Dwg ªí ¬O Ū¨ú BÄæ ²Õ¸Ë¹Ï¸¹ ¡]¬O¨ú¦b¥»ÀÉ Frame per Dwgªí BÄæ ²Õ¸Ë¹Ï¸¹ §t¦³ WO No. ªº¦U¼Ë¼Æ¾Ú¡^¹ïÀ³ Data Base ÀÉ Part List Äæ H ªº¤À§G¹Ï½s¸¹
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 16:43

¦^´_ 75# 198188


    1. ¥»ÀÉ Layout Dwgªí  ¬O Ū¨ú AÄæ ¤À§G¹Ï¸¹ ¡]¬O¨ú¦b¥»ÀÉ Frame per Dwg ùØ­±¨S¦³³o­Ó¤À§G¹Ïªº¨º¨Ç¹Ï¸¹¡^¹ïÀ³ Data Base ÀÉ Part List Äæ H ªº¤À§G¹Ï½s¸¹
8#ªº½d¨Ò Data Base.xlsx  Part Listªí  ¤À§G¹Ï½s¸¹¦bGÄæ ,¬°¤°»ò²{¦bÅܦ¨¦bHÄæ
§@ªÌ: 198188    ®É¶¡: 2025-10-28 16:53

¦^´_  198188


    1. ¥»ÀÉ Layout Dwgªí  ¬O Ū¨ú AÄæ ¤À§G¹Ï¸¹ ¡]¬O¨ú¦b¥»ÀÉ Frame per Dwg ùØ­±¨S¦³ ...
Andy2483 µoªí©ó 2025-10-28 16:43


Data Base & ¥»ÀÉ ªº Part List ³£¥[´¡¤F¤@Äæ ¡§°ª«×¡¨
¦]爲 F Äæ¥[´¡¤F¤@Äæ ¡§°ª«×¡¨¤è«K«á­±¨îªí®ÉŪ¨ú¸ê®Æ¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-28 17:12

¦^´_ 77# 198188


   
1.½Ð­«·s¤W¶Ç·sªº ¥»ÀÉ »PDTATA BASEÀÉ
2.½Ð­«·s»¡©ú³W«h
§@ªÌ: 198188    ®É¶¡: 2025-10-28 18:01

¥»©«³Ì«á¥Ñ 198188 ©ó 2025-10-28 18:02 ½s¿è
¦^´_  198188


   
1.½Ð­«·s¤W¶Ç·sªº ¥»ÀÉ »PDTATA BASEÀÉ
2.½Ð­«·s»¡©ú³W«h
Andy2483 µoªí©ó 2025-10-28 17:12


¥»ÀÉ WO No ªí¸ê®ÆÅã¥Ü³W«h¦p¤U¡G»P¤§«e¤£ÅÜ
1.        ®Ú¾Ú¥»ÀÉ Read ªí A ¡V C Äæ¸ê®Æ (§å¦¸¦¸§Ç, ¼Ó¼h, ¥Í²£³æ¸¹)¡AŪ¨ú Data Base ÀÉ WO No ªí B ¡V DÄæ (§å¦¸¦¸§Ç, ¼Ó¼h, ¥Í²£³æ¸¹) ¬Û¦P¸ê®Æªº¤@¦C

¥»ÀÉ Layout Dwg ªí¸ê®ÆÅã¥Ü³W«h¦p¤U¡G»P¤§«e¤£ÅÜ
1.        ®Ú¾Ú¥»ÀÉ WO No ªí C Äæ ¼Ó¼h ©M B Äæ §å¦¸¦¸§Ç¡AŪ¨ú Data Base ÀÉ Layout Dwg ªíB Äæ ¼Ó¼h¤ÎDÄæ §å¦¸¦¸§Çªº¬Û¦P¸ê®Æ¤@¦C

¥»ÀÉ Frame per Dwg ªí¸ê®ÆÅã¥Ü³W«h¦p¤U¡G»P¤§«e¤£ÅÜ
1. ¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹(¨äCÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:LD¦X­p¼Æ¶q) ­n¤ñ¹ï Data Base ¸ÌFrame per Dwg ªíªºAÄæ ¤À§G¹Ï¸¹
1.1 ­Y§k¦X®É¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºFrame per Dwg,¨ä¤¤EÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q

¥»ÀÉPart List ªí¸ê®ÆÅã¥Ü³W«h¦p¤U¡G
1.¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹(¨äCÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:LD¦X­p¼Æ¶q) ­n¤ñ¹ï Data Base ¸ÌPart ListªíªºHÄæ ¹ïÀ³²Õ¸Ë¸¹/¥[¤u¥ó¸¹
1.1.­Y§k¦X®É¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q
1.1.­YData Base ¸ÌPart ListªíHÄæ¦r¦ê§À³¡¦h¤F­Ó¤p¼g­^¤å¦r¥À¥h°£«á¤]§k¦X ¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹ ®É,¤]¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q
¥H¤W¥¿½T

2.¥»ÀɪºFrame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ (¨äEÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:FD¦X­p¼Æ¶q) ¤]­n¤ñ¹ï Data Base ¸ÌPart ListªíªºHÄæ ¹ïÀ³²Õ¸Ë¸¹/¥[¤u¥ó¸¹
2.1 Frame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ »Ý­n§t¦³ WO No ªíªº F - K Äæ ªº ¦r¥À  WO No ªíªº F - K Äæ ªº ¦r¥À ¦³ "FG", ¨º麽¥u©â¨ú Frame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ §t¦³ "FG"
2.2.­Y§k¦X®É¾ã¦C¤]±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*FD¦X­p¼Æ¶q
§@ªÌ: Andy2483    ®É¶¡: 2025-10-29 08:56

¦^´_ 79# 198188


    ¥»ÀÉ»PDATA BASE1ÀÉ ³£¦U¦³¤@­Ó Materialªí,¨âªí¦³¦óÃö«Y?
§@ªÌ: 198188    ®É¶¡: 2025-10-29 10:38

¦^´_  198188


    ¥»ÀÉ»PDATA BASE1ÀÉ ³£¦U¦³¤@­Ó Materialªí,¨âªí¦³¦óÃö«Y?
Andy2483 µoªí©ó 2025-10-29 08:56


¨â­ÓMaterialªí¬O¤@¼Ëªº¡A¦]¬°Data Base ¤ñ¸û¤j¡A¤W¸ü¤£¤F¡A¤§«e»sªí®É¤è«K«e½ú¬Ý¸Óªí®æ¦¡¡A©Ò¥H´NÂಾ¨ì¥»ÀÉ¡C
©Ò¥H¥»ÀɪºMaterialªí¬O¤£­nªº¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-29 10:56

¦^´_ 81# 198188

¦pªG ¥»ÀɪºMaterialªí¬O¤£­nªº! «áÄò°õ¦æ Sub Form() ®É »Ý­n¦A±Ò¤@¦¸ DATA BAS1Àɮפ~¯àŪ¨ì Materialªíªº ¸ê®Æ
©Ò¥H ½Ð°Ý  Sub Data() ©M Sub Form() ³o¨â­Óµ{¦¡¬O¥H¤U­þºØ»Ý¨D?
1.«ö¤@¦¸¶s«á¨â­Óµ{¦¡±µÄò°õ¦æ§¹±o¨ì.PDFÀÉ
2.«ö¶sSub Data()¥ý°õ¦æ«á,¤â°Ê½s¿è¥»ÀÉ,¦A«ö¶s°õ¦æ Sub Form() ±o¨ì.PDFÀÉ
3.¨ä¥L
§@ªÌ: 198188    ®É¶¡: 2025-10-29 14:12

¦^´_  198188

¦pªG ¥»ÀɪºMaterialªí¬O¤£­nªº! «áÄò°õ¦æ Sub Form() ®É »Ý­n¦A±Ò¤@¦¸ DATA BAS1Àɮפ~¯à ...
Andy2483 µoªí©ó 2025-10-29 10:56



    sub Data ¬O¥´¶}Data base Ū¨ú WO NO ¡ALAYOUT PER DWG¡A FRAME PER DWG¡A PART LIST¡C

SUB FORM ¬O¥Í²£·sªí³æ¡AµM«á¥´¶}Data base¡A Ū¨úmaterial¸ê®Æ¡A¨Ã¥Í²£PSD¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-29 14:18

¦^´_ 83# 198188


    ½Ð¿ï¾Ü 1 ,2 ©Î3
§@ªÌ: 198188    ®É¶¡: 2025-10-29 14:38

¦^´_  198188


    ½Ð¿ï¾Ü 1 ,2 ©Î3
Andy2483 µoªí©ó 2025-10-29 14:18



    ¿ï¾Ü3, ¤À¶}3­ÓÁä¡A¤@­Ó°õ¦æDATA ¤@­Ó°õ¦æ FORM,¤@­Ó°õ¦æ¥´¦LPDF
§@ªÌ: Andy2483    ®É¶¡: 2025-10-29 14:52

¦^´_ 85# 198188


    ¥ý´ú¸Õ DATA:
Sub Data()
Dim Arr, Brr, Crr, Z, Q, S, i&, j%, N&, T$, T1$, MyPath$, xFile$, xBook As Workbook, Re, R&
Application.ScreenUpdating = False
For Each S In [{"Layout Dwg","Frame per Dwg","Part List"}]
   Sheets(S).UsedRange.Rows.Offset(1).EntireRow.Delete
   '¡ô§R°£¥»ÀÉÂÂ¸ê®Æ
Next
MyPath = ThisWorkbook.Path & "\"
xFile = "Data Base1.xlsx"
On Error Resume Next
Set xBook = Workbooks(xFile)
If xBook Is Nothing Then
   Set xBook = Workbooks.Open(MyPath & xFile, , True, , "")
   Re = True: ThisWorkbook.Activate
End If
On Error GoTo 0
Set Z = CreateObject("Scripting.Dictionary")
T = Sheets("Read").[A2] & "|" & Sheets("Read").[C2]
T1 = Sheets("Read").[B2]
With xBook.Sheets("WO No")
   For i = 2 To .[A65536].End(3).Row
      If .Cells(i, "B") & "|" & .Cells(i, "D") = T Then
         .Rows(i).Copy Sheets("WO No").Rows(2)
         For j = 6 To 11
            Z("|" & .Cells(i, j)) = ""
            '¡ô¥OWO Noªíªº F-K Äæªº ¦r¥À«e¤è³s±µ"|"¦r¤¸·íkey,item¬OªÅ¦r¤¸¯Ç¤JZ¦r¨å
         Next
         Sheets("Read").[A2].Resize(, 3).Copy Sheets("WO No").[B2]
         GoTo 11
      End If
   Next
   MsgBox "Nothing": Exit Sub
End With
11
If T1 Like "##F-*##F" Then
   For i = Val(T1) To Val(StrReverse(Mid(StrReverse(T1), 2, 2)))
      Z(Format(i, "00F")) = ""
   Next
   Else
      Q = Split(T1 & "&" & T1, "&")
      For i = 0 To UBound(Q)
         Z(Q(i)) = 0
      Next
End If
Brr = xBook.Sheets("Layout Dwg").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z.Exists(Brr(i, 2)) And Brr(i, 4) = Sheets("Read").[A2] Then
      '¡ô¦pªGBÄæ ¼Ó¼h¤Î DÄæ §å¦¸¦¸§Ç§k¦X
      Z(Brr(i, 1)) = Z(Brr(i, 1)) + Val(Brr(i, 3))
      '¡ô¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹(¨äCÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:LD¦X­p¼Æ¶q)
      N = N + 1
      For j = 1 To 4: Brr(N, j) = Brr(i, j): Next
   End If
Next
If N > 0 Then Sheets("Layout Dwg").[A2].Resize(N, 4) = Brr: N = 0 Else MsgBox "Nothing under the floor": GoTo 12
Brr = xBook.Sheets("Frame per Dwg").[A1].CurrentRegion
For i = 2 To UBound(Brr)
   If Z(Brr(i, 1)) > 0 Then
      N = N + 1
      For j = 1 To 6: Brr(N, j) = Brr(i, j): Next
      Brr(N, 5) = Brr(N, 5) * Z(Brr(i, 1))
      '¡ô¥»ÀɪºFrame per Dwg,¨ä¤¤EÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q
      If Z(Brr(i, 2)) > 0 Then
         MsgBox "Layout DwgªíAÄæ(¤À§G¹Ï¸¹)»P Frame per DwgªíBÄæ(²Õ¸Ë¹Ï¸¹)­«½Æ" & vbLf & vbLf & Brr(i, 2)
         Exit Sub
      End If
      Z(Brr(i, 2) & "/") = Z(Brr(i, 2) & "/") + Brr(N, 5)
      '¡ô¥»ÀɪºFrame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹ (¨äEÄæ¼Æ¶q­n¥[Á`,¥H¤UºÙ:FD¦X­p¼Æ¶q)
   End If
Next
If N > 0 Then Sheets("Frame per Dwg").[A2].Resize(N, 6) = Brr: N = 0 Else MsgBox "Frame per Dwg_Nothing"
Brr = xBook.Sheets("Part List").[A1].CurrentRegion
ReDim Arr(1 To 100000, 1 To 13): Crr = Arr
For i = 2 To UBound(Brr)
   T = Brr(i, 8)
   If T Like "*[a-z]" Then Q = Left(T, Len(T) - 1) Else Q = "||"
   If Z(T) > 0 Or Z(Q) > 0 Then
      N = N + 1
      For j = 1 To 13: Arr(N, j) = Brr(i, j): Next
      Arr(N, 3) = Arr(N, 3) * (Z(T) + Z(Q))
   End If
   '¡ô1.¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹ ­n¤ñ¹ï Data Base ¸ÌPart ListªíªºHÄæ ¤À§G¹Ï½s¸¹
   '1.1.­Y§k¦X®É¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q
   '1.1.­YData Base ¸ÌPart ListªíHÄæ¦r¦ê§À³¡¦h¤F­Ó¤p¼g­^¤å¦r¥À¥h°£«á¤]§k¦X ¥»ÀɪºLayout Dwgªí ªºAÄæ ¤À§G¹Ï¸¹ ®É,¤]¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*LD¦X­p¼Æ¶q

   If Z(T & "/") > 0 And Z.Exists("|" & Left(T, 2)) Then
      R = R + 1
      For j = 1 To 13: Crr(R, j) = Brr(i, j): Next
      Crr(R, 3) = Crr(R, 3) * Z(T & "/")
      '¡ô2.¥»ÀɪºFrame per Dwgªí ªºBÄæ ²Õ¸Ë¹Ï¸¹(«e2¦r¤¸§t¦³ WO No ªíªº F - K Äæ ªº ¦r¥À) ­n¤ñ¹ï Data Base ¸ÌPart ListªíªºHÄæ ¤À§G¹Ï½s¸¹
      '2.1.­Y§k¦X®É¾ã¦C±a¥X¨Ó¨ì¥»ÀɪºPart List,¨ä¤¤CÄæªº¼Æ¶q­n*FD¦X­p¼Æ¶q

   End If
Next
If N > 0 Then
   With Sheets("Part List").[A2].Resize(N, 13)
      .Value = Arr
      .Interior.ColorIndex = 35
      '¡ô¤À§G¹Ï¸¹±a¥X¨ÓªºÀx¦s®æ©³¦â¬O ºñ¦â
   End With
End If
If R > 0 Then
   With Sheets("Part List").Cells(N + 2, 1).Resize(R, 13)
      .Value = Crr
      .Interior.ColorIndex = 36
      '¡ô²Õ¸Ë¹Ï¸¹±a¥X¨ÓªºÀx¦s®æ©³¦â¬O ¶À¦â(²Õ¸Ë¹Ï¸¹±a¥X¨Óªº¦b«á¬q)
   End With
End If
If N + R = 0 Then MsgBox "Part List_Nothing"
12: If Re = True Then xBook.Close 0
End Sub
§@ªÌ: 198188    ®É¶¡: 2025-10-30 09:05

¦^´_  198188


    ¥ý´ú¸Õ DATA:
Sub Data()
Dim Arr, Brr, Crr, Z, Q, S, i&, j%, N&, T$, T1$, My ...
Andy2483 µoªí©ó 2025-10-29 14:52



    [attach]38196[/attach][attach]38197[/attach]

¹B¦æ«á¡A ¥X²{Part List nothing, ¦ý¬O°ò©ó³W«hÀ³¸Ó¦³¸ê®ÆÅã¥Ü¡A¦p¤Wªþ¹Ï¡C¶À¦â³¡¤ÀÀ³¸ÓÅã¥Ü¦bPart List
§@ªÌ: Andy2483    ®É¶¡: 2025-10-30 09:21

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

¦^´_ 87# 198188


    ¦P¼Ë±ø¥ó°õ¦æµ²ªG¦p¤U:
[attach]38198[/attach]

[attach]38199[/attach]
½ÐÀ˵ø´£¨Ñªº½d¨Ò»P ¹ê»Ú°õ¦æÀÉ®×Äæ¦ì¬O§_¬Û¦P
§@ªÌ: 198188    ®É¶¡: 2025-10-30 10:04

¦^´_  198188


    ¦P¼Ë±ø¥ó°õ¦æµ²ªG¦p¤U:



½ÐÀ˵ø´£¨Ñªº½d¨Ò»P ¹ê»Ú°õ¦æÀÉ®×Äæ¦ì¬O§_¬Û¦P
Andy2483 µoªí©ó 2025-10-30 09:21


[attach]38200[/attach]
Äæ¦ì¨S¦³¿ù¡ALayout Dwg, Frame per Dwg ³£¦³¸ê®Æ¾É¥X¡A¥u¦³ Part List ¨S¦³¸ê®Æ¾É¥X¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-30 10:09

¦^´_ 89# 198188


    ½Ð¤W¶Ç ½d¨Ò¥»ÀÉ
DATA BAS1 ¤£»Ý­n
§@ªÌ: 198188    ®É¶¡: 2025-10-30 10:12

¦^´_  198188


    ½Ð¤W¶Ç ½d¨Ò¥»ÀÉ
DATA BAS1 ¤£»Ý­n
Andy2483 µoªí©ó 2025-10-30 10:09



  ªþ¥ó¬O¹B¦æ«áªº¥»ÀÉ
§@ªÌ: Andy2483    ®É¶¡: 2025-10-30 10:21

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

¦^´_ 91# 198188


    °õ¦æ«á¦³¸ê®Æ,¦p88¼Óµ²ªG
½ÐÀ˹îBATA BASE1ÀÉ®× Part Listªí¸ê®Æ¬O§_¦³Â_¦æ(¸ê®Æ¤¤¶¡¦³¾îªºªÅ¦C)

'-----------------------------------------------------¸É¥R
.¦pªG¦³Â_¦æ:½Ð±N  [A1].CurrentRegion ³o¨Ç¦r¸m´«¦¨ UsedRange
§@ªÌ: 198188    ®É¶¡: 2025-10-30 10:31

¦^´_  198188


    °õ¦æ«á¦³¸ê®Æ,¦p88¼Óµ²ªG
½ÐÀ˹îBATA BASE1ÀÉ®× Part Listªí¸ê®Æ¬O§_¦³Â_¦æ(¸ê®Æ¤¤ ...
Andy2483 µoªí©ó 2025-10-30 10:21



   Àˬd¤FData Base ÀɮתºPart List ªí¸ê®Æ¡A¦@45135¦æ¡AColumn A, B, C,D, E, G, H ¤¤¶¡³£¨S¦³Â_¦æ¡C
§@ªÌ: Andy2483    ®É¶¡: 2025-10-30 10:35

¦^´_ 93# 198188


    ½Ð±N   [A1].CurrentRegion ³o¨Ç¦r¸m´«¦¨ UsedRange  ,¦@¦³3³B«á,¦A¸Õ¸Õ¬Ý
§@ªÌ: 198188    ®É¶¡: 2025-10-30 10:37

¦^´_  198188


    °õ¦æ«á¦³¸ê®Æ,¦p88¼Óµ²ªG
½ÐÀ˹îBATA BASE1ÀÉ®× Part Listªí¸ê®Æ¬O§_¦³Â_¦æ(¸ê®Æ¤¤ ...
Andy2483 µoªí©ó 2025-10-30 10:21



   [attach]38202[/attach]
«ö§A«ü¥Ü­×§ï¤F¡A°õ¦æ«á¥X²{¿ù»~¡C
Brr = xBook.Sheets("Part List").[A1].CurrentRegion ­×§ï«e
Brr = xBook.Sheets("Part List").[A1].UsedRange ­×§ï«á
§@ªÌ: 198188    ®É¶¡: 2025-10-30 10:38

¦^´_  198188


    ½Ð±N   [A1].CurrentRegion ³o¨Ç¦r¸m´«¦¨ UsedRange  ,¦@¦³3³B«á,¦A¸Õ¸Õ¬Ý
Andy2483 µoªí©ó 2025-10-30 10:35


­×§ï«á¥X²{¤W¶K¿ù»~
§@ªÌ: Andy2483    ®É¶¡: 2025-10-30 10:40

¦^´_ 96# 198188


    [A1]. ¤]­n´«±¼
§@ªÌ: 198188    ®É¶¡: 2025-10-30 10:43

¦^´_  198188


    [A1]. ¤]­n´«±¼
Andy2483 µoªí©ó 2025-10-30 10:40



    [attach]38203[/attach]
´«¤F¡APart List ¤]Åã¥ÜNothing
§@ªÌ: Andy2483    ®É¶¡: 2025-10-30 10:53

¦^´_ 98# 198188


    ·|¤£·|¬O¨t²Î»y¨¥¤£¦P³y¦¨ªº®t²§,½Ð¸Õ¸Õ¥H¤U ¥N½X

Sub Data()
Dim Arr, Brr, Crr, Z, Q, S, i&, j%, N&, T$, T1$, MyPath$, xFile$, xBook As Workbook, Re, R&
Application.ScreenUpdating = False
For Each S In [{"Layout Dwg","Frame per Dwg","Part List"}]
   Sheets(S).UsedRange.Rows.Offset(1).EntireRow.Delete
Next
MyPath = ThisWorkbook.Path & "\"
xFile = "Data Base1.xlsx"
On Error Resume Next
Set xBook = Workbooks(xFile)
If xBook Is Nothing Then
   Set xBook = Workbooks.Open(MyPath & xFile, , True, , "")
   Re = True: ThisWorkbook.Activate
End If
On Error GoTo 0
Set Z = CreateObject("Scripting.Dictionary")
T = Sheets("Read").[A2] & "|" & Sheets("Read").[C2]
T1 = Sheets("Read").[B2]
With xBook.Sheets("WO No")
   For i = 2 To .[A65536].End(3).Row
      If .Cells(i, "B") & "|" & .Cells(i, "D") = T Then
         .Rows(i).Copy Sheets("WO No").Rows(2)
         For j = 6 To 11
            Z("|" & .Cells(i, j)) = ""
         Next
         Sheets("Read").[A2].Resize(, 3).Copy Sheets("WO No").[B2]
         GoTo 11
      End If
   Next
   MsgBox "Nothing": Exit Sub
End With
11
If T1 Like "##F-*##F" Then
   For i = Val(T1) To Val(StrReverse(Mid(StrReverse(T1), 2, 2)))
      Z(Format(i, "00F")) = ""
   Next
   Else
      Q = Split(T1 & "&" & T1, "&")
      For i = 0 To UBound(Q)
         Z(Q(i)) = 0
      Next
End If
Brr = xBook.Sheets("Layout Dwg").UsedRange
For i = 2 To UBound(Brr)
   If Z.Exists(Brr(i, 2)) And Brr(i, 4) = Sheets("Read").[A2] Then
      Z(Brr(i, 1)) = Z(Brr(i, 1)) + Val(Brr(i, 3))
      N = N + 1
      For j = 1 To 4: Brr(N, j) = Brr(i, j): Next
   End If
Next
If N > 0 Then Sheets("Layout Dwg").[A2].Resize(N, 4) = Brr: N = 0 Else MsgBox "Nothing under the floor": GoTo 12
Set Brr = xBook.Sheets("Frame per Dwg").UsedRange
Brr = Range(Brr, Brr.Offset(, 1))
For i = 2 To UBound(Brr)
   If Z(Brr(i, 1)) > 0 Then
      N = N + 1
      For j = 1 To 6: Brr(N, j) = Brr(i, j): Next
      Brr(N, 7) = Brr(N, 5) & " x " & Z(Brr(i, 1))
      Brr(N, 5) = Brr(N, 5) * Z(Brr(i, 1))
      Z(Brr(i, 2) & "/") = Z(Brr(i, 2) & "/") + Brr(N, 5)
   End If
Next
If N > 0 Then Sheets("Frame per Dwg").[A2].Resize(N, 7) = Brr: N = 0 Else MsgBox "Frame per Dwg_Nothing"
Brr = xBook.Sheets("Part List").UsedRange
ReDim Arr(1 To 100000, 1 To 14): Crr = Arr
For i = 2 To UBound(Brr)
   T = Brr(i, 8)
   If T Like "*[a-z]" Then Q = Left(T, Len(T) - 1) Else Q = "||"
   If Z(T) > 0 Or Z(Q) > 0 Then
      N = N + 1
      For j = 1 To 13: Arr(N, j) = Brr(i, j): Next
      Arr(N, 14) = Arr(N, 3) & " x " & (Z(T) + Z(Q))
      Arr(N, 3) = Arr(N, 3) * (Z(T) + Z(Q))
   End If
   If Z(T & "/") > 0 And Z.Exists("|" & Left(T, 2)) Then
      R = R + 1
      For j = 1 To 13: Crr(R, j) = Brr(i, j): Next
      Crr(R, 14) = Crr(R, 3) & " x " & Z(T & "/")
      Crr(R, 3) = Crr(R, 3) * Z(T & "/")
   End If
Next
If N > 0 Then
   With Sheets("Part List").[A2].Resize(N, 14)
      .Value = Arr
      .Interior.ColorIndex = 35
   End With
End If
If R > 0 Then
   With Sheets("Part List").Cells(N + 2, 1).Resize(R, 14)
      .Value = Crr
      .Interior.ColorIndex = 36
   End With
End If
If N + R = 0 Then MsgBox "Part List_Nothing"
12: If Re = True Then xBook.Close 0
End Sub
§@ªÌ: Andy2483    ®É¶¡: 2025-10-30 11:12

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2025-10-30 11:13 ½s¿è

¦^´_ 98# 198188


    ½Ð±N RunForm Module ¸Ìªº Sub Data()¥N½X¥þ³¡§R°£,µ{¦¡¦WºÙ»P RunData Module Sub Data()­«½Æ¤F




Åwªï¥úÁ{ ³Â»¶®a±Ú°Q½×ª©ª© (http://forum.twbts.com/)