返回列表 上一主題 發帖

請問規則02F - 04F 如果在Data Base 篩選在這個範圍内的相關資料

本帖最後由 198188 於 2025-11-13 08:28 編輯
回復  198188


    179樓的Finish規則不足問題待釐清
其它問題也請前輩多瞭解代碼的邏輯,以後可以依 ...
Andy2483 發表於 2025-11-12 19:09


前輩,後輩嘗試過了解,不過因爲沒有注釋,理解上只是一知半解,所以多次想自己做修正,都遇到困難。
在前面字典部分,後輩初步了解,所以之前Data方面能自行做一些修正及。
Form因為牽涉其他層面,後輩正在努力學習中。希望前輩多給予指點。
Finish 規則未釐清,所以後輩想趁這個時間透過前面部分的修正,跟現在的程式,兩者相對比來學習

TOP

回復  198188


    這6個模板把資料分割成多頁列印(如下圖),請前輩再調整 版面配置
Andy2483 發表於 2025-11-13 08:27


前輩,這個到時後輩會調整模板的打印版面配置,才運行程式。

TOP

本帖最後由 198188 於 2025-11-13 15:57 編輯
回復  198188


合并及加總數量這部分需要對照每個表的數量欄位,如何加不明確,每個表 加工件編號種類不 ...
Andy2483 發表於 2025-11-13 13:34



   
前輩,執行時,出現圖片這個問題。

加總的問題,跟 用 Layout Dwg 導出 Frame per Dwg 資料模式一樣。
先以 本檔 Part List A欄 加工件編號  & G 欄 備注 為規則,將資料放入字典,
字典: 加工件編號 & 備注是唯一,將 兩者相同的數量加總,放入字典
然後再根據 Rule 表 的 Key Word & Remark ,複製到相應的範本表格内。

Result 11 Nov 2025.rar (210.31 KB)

TOP

回復  198188


    RunForm Module刪除就可執行

加總的問題請將6模板各手動公式加入1列加總範例上傳 ...
Andy2483 發表於 2025-11-13 16:02





#186 樓 Fabrication Extrusion 表,出來的效果不對,附上圖給前輩

#186 樓 DN Material 表,出來的效果不對,附上圖給前輩

附上6個表的範例 excel,  每個表都有模板及一些範例。(左邊是#186樓出來的效果,右邊是我手動之後想要的效果。)
1) 黃色部分是指編碼,
2) 綠色部分是指數量,

規則:比對相同編碼(黃色),如吻合,將數量(綠色)加總,(紫色的是那些合并了重複的編碼,沒顔色的是那些沒有重複的編碼)

6個表.rar (273.91 KB)

TOP

回復  198188

1.        BOM表 漏欄C - F, H, I, K
2.        GASKET 表 漏欄C - E, G - H, J
3.     ...
Andy2483 發表於 2025-11-13 13:01


前輩,我以#186 樓程式測試,另外將 Data Base 的 Material 表 都填寫資料,及在本檔也加上Material 表 , 但是 BOM, DN Material, Gasket 還有有黃色部分沒有出來。 請看附件。

GASKET 表
D 欄 英文描述 對比 Material 表 E 欄 英文描述
E  欄 中文描述 對比 Material 表 F 欄 中文描述
H 欄 單位 對比 Material 表 I 欄 中文單位

BOM 表
D 欄 英文描述 對比 Material 表 E 欄 英文描述
E  欄 中文描述 對比 Material 表 F 欄 中文描述
F 欄 材質, 標準及等級 對比 Material 表 G 欄  材質
H 欄 單重 (KGS) 對比 Material 表 K 欄  單重
I 欄 顔色/表面處理  對比 Material 表 J 欄  顔色/表面處理
K 欄 單位 對比 Material 表 I 欄 中文單位

DN Material 表
E  欄 單重 (KGS) 對比 Material 表 K 欄  單重
F 欄 單位 對比 Material 表 I 欄 中文單位

Result 14 Nov 2025 .rar (589.57 KB)

遺漏數據資料.rar (71.95 KB)

TOP

回復  198188


1.何謂:紫色合并重複的編碼?
2.總數量相加明確,總重量需要相加嗎? 其他欄位是否也有累 ...
Andy2483 發表於 2025-11-14 15:40




1.何謂:紫色合并重複的編碼? 附件紫色的意思是指那個編號的數量加總了。沒有顔色的,指不需要加總,請看上圖

2.總數量相加明確,總重量需要相加嗎? 其他欄位是否也有累加的必要? 總重量是 總數量 * Material 表 K 欄 單重,如果Material 表 K 欄 單重是空白,那麽總重量就空白。
有總重量的模板:Gasket 表 J 欄,DN Material 表 H 欄,Finish 表F欄


3.Fabrication Extrusion表[A3:F3]要合併儲存格嗎? 是合併儲存格, 之前模板漏了合併。[A3:F3] 是現示英文 "Fabrication Order Sheet For Extrusion Parts",[A4:F4]是顯示中文 "加工清單"

4.BOM有 要求交貨期的三種批次,所上傳範例直接加總正確嗎? J 欄 顯示加總的數量就可以,後面[L : Q ]批次是人手自我調整。

5.Finish模板帶入規則如何? 這個應該下周可以確認。規則只影響 B 欄 單元件編號, E欄 總數量和 G欄備注,其他 C, D欄也是讀取 Material 表的對應資料

6個表.rar (273.91 KB)

TOP

回復  198188


    請前輩試試看

Option Explicit
Public A, Z, R&, W, L, i&, Brr, Mrr, Q, Drr, ...
Andy2483 發表於 2025-11-17 10:52



   前輩,初步試了,我把問題寫在附件 “有問題的地方”
數量加總和合并暫時未發現問題,我會再繼續測試,如有問題再提出。

Result 17 Nov 2025 .rar (706.45 KB)

有問題的地方.rar (142.66 KB)

TOP

  1. Sub Bom()
  2. If Brr(i, 1) = Brr(i - 1, 1) Then A(R, 10) = A(R, 10) + Brr(i, 3): A(R, 14) = A(R, 10): Exit Sub
  3. R = R + 1: A(R, 1) = R: A(R, 2) = Brr(i, 1): A(R, 3) = Brr(i, 12)
  4. If A(R, 3) <> "" And Z.Exists(A(R, 3) & "/m") Then
  5.    For j = 0 To 5: A(R, Array(4, 5, 6, 8, 9, 13)(j)) = Mrr(Z(A(R, 3) & "/m"), Array(5, 6, 7, 11, 10, 8)(j)): Next
  6. End If
  7. A(R, 7) = Brr(i, 4) & " x " & Brr(i, 5)
  8. A(R, 10) = Brr(i, 3)
  9. A(R, 14) = Brr(i, 3)
  10. A(R, 18) = Brr(i, 7)
  11. End Sub
複製代碼
前輩,初步試了,我把問題寫在附件 “有問題的地方”
數量加總和合并暫時未發現問題,我會再繼續 ...
198188 發表於 2025-11-17 16:13


Bom 模板        下面未導出資料
本檔 Bom 表 D 欄 英文描述        Data Base 檔 Material 表欄 E 英文描述(對客戶)  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 E 欄 中文描述        Data Base 檔 Material 表欄 F 中文描述(對供應商)  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 F 欄 材質, 標準及等級        Data Base 檔 Material 表欄 G 材質  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 H 欄 單重        Data Base 檔 Material 表欄 K 單重  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 I 欄 顔色/表面處理        Data Base 檔 Material 表欄 J 顔色/表面處理  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 K 欄 單位        Data Base 檔 Material 表欄 H 英文單位  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 N 欄 採購數量        本檔 Bom表 J 欄 數量 【  已解決,附上代碼】

Gasket 模板        下面未導出資料
本檔 Gasket 表 D 欄 英文描述        Data Base 檔 Material 表欄 E 英文描述(對客戶) 【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Gasket 表 E 欄 中文描述        Data Base 檔 Material 表欄 F 中文描述(對供應商) 【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Gasket 表 H 欄 單位        Data Base 檔 Material 表欄 H 英文單位  【人手搜過,Material 有這個資料, 但沒有導出資料】

Structural 模板       
總容量 (L)        長度 * 截面積 / 1000000 = 總容量 【我已經修改 A(R, 7) = Application.RoundUp(A(R, 5) * A(R, 6) / 1000000, 0)】
截面積(mm2) = ok        材料描述 19.8mmx8mm 【截面積 = 19.8 x 8 = 158.4, 這個沒問題】
截面積(mm2) = ok        材料描述25.4mmx8mm DC983 STRUCTURAL SILICONE-BLACK 【截面積 = 25.4 x 8 = 203.2, 這個沒問題】
截面積(mm2) = 漏了這個規則        材料描述136 mm² DC983 STRUCTURAL SILICONE-BLACK 【材料描述是這種 mm² 描述,截面積 = 136,這個之前沒有説明,需要加一下】
截面積(mm2) = 漏了這個規則        材料描述176 mm² DC983 STRUCTURAL SILICONE-BLACK 【材料描述是這種 mm² 描述,截面積 = 176,這個之前沒有説明,需要加一下】

Fabrication Extrusion模板        下面導錯資料
本檔 Fabrication Extrusion 表 A3 儲存格        本檔 Rule 表 H2 儲存格 的英文字 "Fabrication Order Sheet For Extrusion Parts" (”-“之前的英文字)程式出來的是 “Fabrication Order Sheet For Extrusion Parts - 加工”
本檔 Fabrication Extrusion 表 A4 儲存格        本檔 Rule 表 H2 儲存格 的中文字 "加工清單" (”-“之後的中文字)程式出來的是 “清單”
       
DN Material模板        下面導錯資料
本檔 DN Materialn 表 A3 儲存格        本檔 Rule 表 E2 儲存格 的英文字 "Delivery Notes For Material Parts" (”-“之前的英文字)程式出來的是 “Delivery Notes For Material Parts - 散件出貨”
本檔 DN Material 表 A4 儲存格        本檔 Rule 表 E2 儲存格 的中文字 "散件出貨明細" (”-“之後的中文字)程式出來的是 “明細”
本檔 DN Material 表 E 欄 單重        本檔 Part List 表欄 M 單重  【我已經修改 A(R, 5) = Brr(i, 13)】
本檔 DN Material 表 F 欄 單位        ="PC"  【我已經修改 A(R, 6) = "PC"】
本檔 DN Material 表 H 欄 總重量        本檔 DN Material 表 E 欄 單重 * 本檔 DN Material 表 G 欄 總數量 【我已經修改 A(R, 8) = A(R, 5) * A(R, 7)】

TOP

本帖最後由 198188 於 2025-11-18 16:48 編輯
Bom 模板        下面未導出資料
本檔 Bom 表 D 欄 英文描述        Data Base 檔 Material 表欄 E 英文描述(對客戶) ...
198188 發表於 2025-11-18 15:31
  1. Sub RuleRun()
  2. Dim T$, T2$, S$, i&, j%, T3$
  3. Set Z = CreateObject("Scripting.Dictionary")
  4. Brr = [Rule!A1].CurrentRegion
  5. For i = 3 To UBound(Brr)
  6.    For j = 2 To 8
  7.       T = Brr(i, j)
  8.       If T <> "" Then
  9.          If Z(T & "|") = "" Or j = 5 Or j = 8 Then
  10.             Z(T & "^") = Brr(2, j)
  11.             [color=Red]Z(T & "|") = Left(Brr(2, j), InStr(Brr(2, j), "-") - 1)[/color]
  12.          End If
  13.          Exit For
  14.       End If
  15.    Next
複製代碼
  1. Sub Structural()
  2. If Brr(i, 1) = Brr(i - 1, 1) Then A(R, 5) = A(R, 5) + Brr(i, 3): Exit Sub
  3. R = R + 1: A(R, 1) = R
  4. For j = 0 To 2: A(R, Array(2, 3, 5)(j)) = Brr(i, Array(1, 2, 3)(j)): Next
  5. If Brr(i, 2) Like "*mmx*" Then
  6. L = Split(Brr(i, 2) & "mm", "mm")(0)
  7. W = Split(Brr(i, 2) & "mm", "mm")(1)
  8. L = Val(StrReverse(Mid(Val(StrReverse(L & 1)), 2)))
  9. W = Val(StrReverse(Mid(Val(StrReverse(W & 1)), 2)))
  10. A(R, 6) = L * W
  11. Else
  12. A(R, 6) = Split(Brr(i, 2) & "mm", "mm")(0)
  13. End If
  14. A(R, 8) = A(R, 5) * A(R, 6) / 1000
  15. A(R, 7) = Application.RoundUp(A(R, 5) * A(R, 6) / 1000000, 0)
  16. End Sub
複製代碼
Bom 模板        下面未導出資料
本檔 Bom 表 D 欄 英文描述        Data Base 檔 Material 表欄 E 英文描述(對客戶)  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 E 欄 中文描述        Data Base 檔 Material 表欄 F 中文描述(對供應商)  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 F 欄 材質, 標準及等級        Data Base 檔 Material 表欄 G 材質  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 H 欄 單重        Data Base 檔 Material 表欄 K 單重  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 I 欄 顔色/表面處理        Data Base 檔 Material 表欄 J 顔色/表面處理  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 K 欄 單位        Data Base 檔 Material 表欄 H 英文單位  【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Bom表 N 欄 採購數量        本檔 Bom表 J 欄 數量 【  已解決,附上代碼】

Gasket 模板        下面未導出資料
本檔 Gasket 表 D 欄 英文描述        Data Base 檔 Material 表欄 E 英文描述(對客戶) 【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Gasket 表 E 欄 中文描述        Data Base 檔 Material 表欄 F 中文描述(對供應商) 【人手搜過,Material 有這個資料, 但沒有導出資料】
本檔 Gasket 表 H 欄 單位        Data Base 檔 Material 表欄 H 英文單位  【人手搜過,Material 有這個資料, 但沒有導出資料】

Structural 模板      
總容量 (L)        長度 * 截面積 / 1000000 = 總容量 【我已經修改 A(R, 7) = Application.RoundUp(A(R, 5) * A(R, 6) / 1000000, 0)】
截面積(mm2) = ok        材料描述 19.8mmx8mm 【截面積 = 19.8 x 8 = 158.4, 這個沒問題】
截面積(mm2) = ok        材料描述25.4mmx8mm DC983 STRUCTURAL SILICONE-BLACK 【截面積 = 25.4 x 8 = 203.2, 這個沒問題】
截面積(mm2) = 漏了這個規則        材料描述136 mm² DC983 STRUCTURAL SILICONE-BLACK 【材料描述是這種 mm² 描述,截面積 = 136,這個之前沒有説明,需要加一下】 【  已解決,附上代碼】
截面積(mm2) = 漏了這個規則        材料描述176 mm² DC983 STRUCTURAL SILICONE-BLACK 【材料描述是這種 mm² 描述,截面積 = 176,這個之前沒有説明,需要加一下】 【  已解決,附上代碼】

Fabrication Extrusion模板        下面導錯資料
本檔 Fabrication Extrusion 表 A3 儲存格        本檔 Rule 表 H2 儲存格 的英文字 "Fabrication Order Sheet For Extrusion Parts" (”-“之前的英文字)程式出來的是 “Fabrication Order Sheet For Extrusion Parts - 加工”【  已解決,附上代碼】
本檔 Fabrication Extrusion 表 A4 儲存格        本檔 Rule 表 H2 儲存格 的中文字 "加工清單" (”-“之後的中文字)程式出來的是 “清單”【  已解決,附上代碼】
      
DN Material模板        下面導錯資料
本檔 DN Materialn 表 A3 儲存格        本檔 Rule 表 E2 儲存格 的英文字 "Delivery Notes For Material Parts" (”-“之前的英文字)程式出來的是 “Delivery Notes For Material Parts - 散件出貨”【  已解決,附上代碼】
本檔 DN Material 表 A4 儲存格        本檔 Rule 表 E2 儲存格 的中文字 "散件出貨明細" (”-“之後的中文字)程式出來的是 “明細”【  已解決,附上代碼】
本檔 DN Material 表 E 欄 單重        本檔 Part List 表欄 M 單重  【我已經修改 A(R, 5) = Brr(i, 13)】
本檔 DN Material 表 F 欄 單位        ="PC"  【我已經修改 A(R, 6) = "PC"】
本檔 DN Material 表 H 欄 總重量        本檔 DN Material 表 E 欄 單重 * 本檔 DN Material 表 G 欄 總數量 【我已經修改 A(R, 8) = A(R, 5) * A(R, 7)】

TOP

本帖最後由 198188 於 2025-11-18 16:53 編輯
回復  198188


    BOM類 查Part List表 供應商編號 大部分都是 - ,所以都不必再查下去,所以沒有中文/ ...
Andy2483 發表於 2025-11-18 16:44


BOM 的中英文名稱 在 Material 表内有。
For j = 0 To 5: A(R, Array(4, 5, 6, 8, 9, 13)(j)) = Mrr(Z(A(R, 3) & "/m"), Array(5, 6, 7, 11, 10, 8)(j)): Next
For j = 0 To 2: A(R, Array(4, 5, 8)(j)) = Mrr(Z(A(R, 3) & "/m"), Array(5, 6, 8)(j)): Next
這兩句就是無法讀取Material 表的資料。

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題