返回列表 上一主題 發帖

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

回復  198188


以下方案請試試看

Option Explicit
Sub TEST_2()
Dim Brr, Z, Q, i&, j%, N&, T$ ...
Andy2483 發表於 2025-10-13 13:21


附圖是執行後的結果,Part List 一頁都是空白,沒有資料出來。
兩個規則 1 & 2 都應該有資料,但是沒有導入Part List

TOP

回復  198188


    範例 生產單單號 裡沒有 WO-J057-021
Andy2483 發表於 2025-10-13 14:33


因爲Data Base 資料太多,容量超過1MB 無法上傳,所以我刪除了一些Data Base 内容。
不過按照規則,應該是共通的。
我試過其他的生產單號,Part list 都是空白。

TOP

回復  198188


    範例 生產單單號 裡沒有 WO-J057-021
Andy2483 發表於 2025-10-13 14:33
  1. If Z.Exists("|" & Left(Brr(i, 7), 2)) Or Z(Brr(i, 7)) > 0 Then
複製代碼
我找到問題所在了,這句應該用 "OR "不是用 "AND" , 因爲兩個規則是不能共存的,屬於兩條獨立規則。

TOP

回復  198188


    以下方案是練習以  Data Base.xlsx 利用輔助欄直接篩選的方案,請前輩參考

1.選取 ...
Andy2483 發表於 2025-10-14 13:53



   可否説明一下輔助欄的操作原理和規則

TOP

回復  198188


WO No表選取 02F-04F後,按鈕執行:


Layout Dwg表會得到符合樓層且符合批次的篩選:
...
Andy2483 發表於 2025-10-15 14:30


我在 "WO NO", "LAYOUT DWG", FRAME PER DWG" , "PART LIST"  �堶悼[入 “WO-NO"  及執行鍵,運作後,出現 Error

TOP

回復  198188


    請加入以下紅字行代碼

If .AutoFilter Is Nothing Then
         .[A1].Resize ...
Andy2483 發表於 2025-10-15 15:21



   可以了,感謝前輩指點。

TOP

回復  198188


    請加入以下紅字行代碼

If .AutoFilter Is Nothing Then
         .[A1].Resize ...
Andy2483 發表於 2025-10-15 15:21


前輩可否幫我看看這個。

相關規則在 “講解 Rule”一頁詳細講解。

result.rar (303.51 KB)

TOP

前輩可否幫我看看這個。

相關規則在 “講解 Rule”一頁詳細講解。
198188 發表於 2025-10-20 17:47



  用這個模板,Rule 一頁,我將規則按列模式排列,方便程式設計。

result.rar (301.3 KB)

TOP

本帖最後由 198188 於 2025-10-22 16:27 編輯
回復  198188


    以下方案請試試看

Option Explicit
Sub TEST()
Dim Arr, Brr, Crr(1 To 10000 ...
Andy2483 發表於 2025-10-22 14:19


因爲程式中有中文,無法運行,我更新了一下規則,規則用列表模式顯示,用 “ Symbol" 來識別 備注符號,用 "Code" 來識別頭兩個字頭。這樣即使將來要增加或減少 符號及編號都不影響程式。

1)        根據Rule的規則, 當 “Part List” 欄G ”備注” 的符號及欄A 的字頭跟 “Rule” 的Symbol 欄 & Code 欄相同,根據 Rule欄A 的Form名稱複雜一個新模板,命名為 欄I的English Product + Symbol 的對應名稱並去除 “-“ 和後面的中文字
舉例
Part List �堶惇O “F0” 字頭 & “Y” 備注, 複製Bom 模板,命名 “Screw-Deliver to Site”
Part List �堶惇O “IG” 字頭 & “-” 備注, 複製Gasket 模板,命名 “Gasket-Deliver to Factory”
Part List �堶惇O “E1” 字頭 & “Y” 備注, 複製DN Material 模板,命名 “Extrusion-Delivery Notes For Material Parts”

2)        根據Rule的規則, 當 “Frame per Dwg” 欄F ”備注” 的符號及欄B的字頭跟 “Rule” 的Symbol 欄 & Code 欄相同,根據 Rule欄A 的Form名稱複雜一個新模板,命名為 欄I的English Product + Symbol 的對應名稱並去除 “-“ 和後面的中文字
舉例
Frame per Dwg �堶惇O “DF” 字頭 & “T” 備注, 複製Finish 模板,命名 “Door Frame- Finish Part Order On-Hold”
Frame per Dwg �堶惇O “WS” 字頭 & “T” 備注, 複製Finish 模板,命名 “Window Sash - Finish Part Order On-Hold”
Frame per Dwg �堶惇O “DF” 字頭 & “W” 備注, 複製Finish 模板,命名 “Door Frame - Finish Part Order”

Bom模板 填寫規則
Range (“A4”) = 欄G 的英文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “ Screw – 螺絲”; 讀取Panel 的資料,備注是 - ,顯示 ”Panel – 鈑金”)
Range (“A5”) = 欄 H 的中文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “Deliver to Site -工地用”; 讀取Panel 的資料,備注是 - ,顯示 ”Deliver to Factory - 廠房用”)
尺寸 = Part List 欄 L 長度 "x" 欄 M 寬度 (舉例 2211.1 x 717.9)
數量 = Part List 欄  C 數量
備註 =  Part List 欄  G 備註量
供應商編號 = Material 欄 C 供應商編號
英文描述 = Material 欄 E 英文描述(對客戶)
中文描述 = Material 欄 F 中文描述(對供應商)
材質, 標準及等級 = Material 欄 G 材質
單重 = Material 欄 K 單重
顔色/表面處理 = Material 欄 J 顔色/表面處理
單位 = Material 欄 H 英文單位

Gasket模板 填寫規則
Range (“D6”) = 欄G 的英文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “ Screw – 螺絲”; 讀取Panel 的資料,備注是 - ,顯示 ”Panel – 鈑金”)
Range (“D7”) = 欄 H 的中文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “Deliver to Site -工地用”; 讀取Panel 的資料,備注是 - ,顯示 ”Deliver to Factory - 廠房用”)
序號= 1,2,3順序
編號 = Part List 欄 A 加工件編號
總數量 = Part List 欄  C 數量
寬度 = Part List 欄 E 寬度
高度 = Part List 欄 F 高度
備註 =  Part List 欄  G 備註量
供應商編碼 = Material 欄 C 供應商模號
英文描述 = Material 欄 E 英文描述(對客戶)
中文描述 = Material 欄 F 中文描述(對供應商)
單位 = Material 欄 H 英文單位

Structural 模板 填寫規則
Range (“C3”) = 欄G 的英文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “ Screw – 螺絲”; 讀取Panel 的資料,備注是 - ,顯示 ”Panel – 鈑金”)
Range (“C4”) = 欄 H 的中文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “Deliver to Site -工地用”; 讀取Panel 的資料,備注是 - ,顯示 ”Deliver to Factory - 廠房用”)
序號= 1,2,3順序
編號 = Part List 欄 A 加工件編號
材料描述 =  Part List 欄 B 描述
總長度 = Part List 欄 C 數量
截面積 = Part List 欄 B 描述的長度相乘 舉例 描述是"19.8mmx8mm DC983 STRUCTURAL SILICONE-BLACK"  截面積計算為 19.8*8=158.4
總容量 = 欄E 總長度 * 欄F 截面積 / 1000 (小數點進1, 舉例 12.1 =13;14.3 = 15; 0.8 = 1)

DN Material 模板 填寫規則
Range (“A3”) = 欄G 的英文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “ Screw – 螺絲”; 讀取Panel 的資料,備注是 - ,顯示 ”Panel – 鈑金”)
Range (“A4”) = 欄 H 的中文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “Deliver to Site -工地用”; 讀取Panel 的資料,備注是 - ,顯示 ”Deliver to Factory - 廠房用”)
序號= 1,2,3順序
編碼 = Part List 欄 A 加工件編號
供應商編號 = Part List 欄 K 供應商編號
寬度 = Part List 欄 E 寬度
總數量 = Part List 欄  C 數量
單重 = 用供應商編號讀取 Material 欄 K 單重
單位 = 用供應商編號讀取 Material 欄 H 英文單位
總重量 = 欄 E 單重 * 欄G 總數量
備註 =  Part List 欄  G 備註量

Fabrication Extrusion模板 填寫規則
Range (“A3”) = 欄G 的英文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “ Screw – 螺絲”; 讀取Panel 的資料,備注是 - ,顯示 ”Panel – 鈑金”)
Range (“A4”) = 欄 H 的中文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “Deliver to Site -工地用”; 讀取Panel 的資料,備注是 - ,顯示 ”Deliver to Factory - 廠房用”)
序號= 1,2,3順序
加工件編號 = Part List 欄 A 加工件編號
模號 = Part List 欄 K 供應商編號
成色編號  = Part List 欄 J 成色編號
長度 =  Part List 欄 D 長度
總數量 = Part List 欄  C 數量
參考圖號 = Part List 欄 A 加工件編號 去除第二個 “-” 後面的字(如有)
舉例 加工件編號 E1106-600 參考圖號 E1106-600; 加工件編號 E1106-600-01 參考圖號 E1106-600; 加工件編號 E1106-600-11 參考圖號 E1106-600
備註 =  Part List 欄  G 備註量

Finish 模板 填寫規則
Range (“A3”) = 欄G 的英文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “ Screw – 螺絲”; 讀取Panel 的資料,備注是 - ,顯示 ”Panel – 鈑金”)
Range (“A4”) = 欄 H 的中文名稱 + 備注相關的B 列名稱 (舉例 讀取Screw 的資料,備注是Y, 顯示 “Deliver to Site -工地用”; 讀取Panel 的資料,備注是 - ,顯示 ”Deliver to Factory - 廠房用”)
序號= 1,2,3順序
單元件編號 = Frame per Dwg 欄 B 組裝圖編號 (相應頭兩個字母)
寬度 = Frame per Dwg 欄 C 組裝圖寬度
高度 = Frame per Dwg 欄 D 組裝圖高度
總數量 = Frame per Dwg 欄 E 組裝圖在分佈圖上的數量
備註 = Frame per Dwg 欄 F 組裝圖的出貨情況

result.rar (293.53 KB)

規則.rar (17.6 KB)

TOP

因爲程式中有中文,無法運行,我更新了一下規則,規則用列表模式顯示,用 “ Symbol" 來識別 備注 ...
198188 發表於 2025-10-22 16:25


另外制表完成後,可否將生成的制表,打印 PDF save 在該 Excel 的位置?

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題