| ©«¤l510 ¥DÃD71 ºëµØ0 ¿n¤À606 ÂI¦W1  §@·~¨t²Îwin7 ³nÅ骩¥»office 2010 ¾\ŪÅv50 ©Ê§O¨k µù¥U®É¶¡2012-10-30 ³Ì«áµn¿ý2025-10-31 
 | 
                
| ½Æ»s¥N½XSub 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 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)) + Z(Q))
   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 
 
 
 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²{ªº¡An¦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¥À¡An¦b Part List ¥X²{ ¼Æ¶q¬Û¼
 | 
 |