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

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

¦^´_  198188


    ¥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

TOP

¦^´_ 51# 198188


    "«e­±Part List ©â¨ú¸ê®Æ³¡¤À"  ¬O­þ¤@¼Ó¼h¤è®×¤£²Å¦X»Ý¨D?
¥Î¦æ°Ê¸Ë¸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


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"



«e½ú¬O³o­Ó³¡¤Àªº¸ê®Æ¤£¥¿½T¡AÀ³¸Ó¥H¹Ï¤ùªº³W«h¿z¿ïPART LIST¸ê®Æ¡C

TOP

¦^´_ 53# 198188
»Ý­n¥H#13°õ¦æ#8½d¨Òªºµ²ªG¦p¦ó¿ù¡A¥¿½T­È¤S¸Ó¦p¦ó§e²{¡H»¡©ú¥¿½T»P¿ù»~®t²§
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

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




³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

TOP

³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



    ³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

TOP

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

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

TOP

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

TOP

  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¬Û­¼

TOP

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

TOP

        ÀR«ä¦Û¦b : ¹ï¤÷¥À­nª¾®¦¡A·P®¦¡B³ø®¦¡C
ªð¦^¦Cªí ¤W¤@¥DÃD