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

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

¦^´_ 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
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_  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.

TOP

¦^´_  198188


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

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


­è­è´ú¸Õ¤F¡A¾É¤£¥X¼Æ¾Ú¡C
®Ú¾ÚWO No ªº¦U¼Ë¼Æ¾Ú¡A¦ÓFrame per Dwg ùتº²Õ¸Ë¹Ï¸¹¦³³o­Ó¼Æ¾Úªº­^¤å¦r¥À¡A¦bPart List ¾É¥X¼Æ¾Ú¡A

TOP

¦^´_ 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
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

·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½Õ¾ã
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_  198188


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

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


ªþ¹Ï¬O°õ¦æ«áªºµ²ªG¡APart List ¤@­¶³£¬OªÅ¥Õ¡A¨S¦³¸ê®Æ¥X¨Ó¡C
¨â­Ó³W«h 1 & 2 ³£À³¸Ó¦³¸ê®Æ¡A¦ý¬O¨S¦³¾É¤JPart List

TOP

¦^´_ 16# 198188


    ½d¨Ò ¥Í²£³æ³æ¸¹ ¸Ì¨S¦³ WO-J057-021
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_  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

TOP

¦^´_  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

TOP

        ÀR«ä¦Û¦b : ¦¨¥\¬OÀuÂIªºµo´§¡A¥¢±Ñ¬O¯ÊÂIªº²Ö¿n¡C
ªð¦^¦Cªí ¤W¤@¥DÃD