返回列表 上一主題 發帖

請求改良程式

回復 7# 198188

謝謝前輩回復
這範例的需求還一直在變化需求,建議先手動執行一段時間後,等定案了再以VBA自動化處理
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

本帖最後由 198188 於 2024-3-16 10:16 編輯

回復 6# Andy2483





"MAP" 工作表模板固定行數5行 (列6 "上架",列7 "下架",列8 "中箱",列9 "上架",列10 "下架"), 欄位固定從欄C開始,欄數不固定,取決于 "SHEET1"資料庫

"SHEET1" 工作表資料庫,行數最少5行,欄位固定從欄B開始,欄數不固定

對應數據的規則
Sheet1 該組的第一行  對應 MAP 列6 "上架"
Sheet1 該組的第二行  對應 MAP 列7 "下架"

Sheet1 該組的第三行 (或者第三行 至 尾三行)  對應 MAP 列8 "中箱", 如上圖藍色部分
舉例如果總共6行,第3,4行 對應 MAP 列8 "中箱";如果總共7行,第3,4,5行 對應 MAP 列8 "中箱",如果總共8行,第3,4,5,6行 對應 MAP 列8 "中箱",如此類推

Sheet1 該組的尾二行  對應 MAP 列9 "上架"
Sheet1 該組的第尾行  對應 MAP 列10 "下架"

Sheet1 欄B 對應 MAP 欄 C&D, 欄C 抽取 (如有 "SR" ,從"SR"開始 到 第一個空格或者 "(" ;  如沒有"SR" ,從第1個字 到 第一個空格或者 "(" ,並刪除符號 "#" 如有); 欄D 抽取 (欄C 取到的字元之後的所有字元,並刪除符號 "(" & ")" 如有)
Sheet1 欄C 對應 MAP 欄 E&F, 欄E 抽取 (如有 "SR" ,從"SR"開始 到 第一個空格或者 "(" ;  如沒有"SR" ,從第1個字 到 第一個空格或者 "(" ,並刪除符號 "#" 如有); 欄F 抽取 (欄C 取到的字元之後的所有字元,並刪除符號 "(" & ")" 如有)
Sheet1 欄D 對應 MAP 欄 G&H,欄G 抽取 (如有 "SR" ,從"SR"開始 到 第一個空格或者 "(" ;  如沒有"SR" ,從第1個字 到 第一個空格或者 "(" ,並刪除符號 "#" 如有); 欄H抽取 (欄C 取到的字元之後的所有字元,並刪除符號 "(" & ")" 如有)
Sheet1 欄E 對應 MAP 欄 I&J ,如上
Sheet1 欄F 對應 MAP 欄 K&L , 如上
Sheet1 欄G 對應 MAP 欄 M&N , 如上
Sheet1 欄H 對應 MAP 欄 O&P  ,如上
如此類推

排 櫃 表.rar (59.88 KB)

TOP

本帖最後由 Andy2483 於 2024-3-15 18:42 編輯

回復 5# 198188


    如果超過10項11.12.13....等表又會怎麼變?
與決策者多討論各種不同狀況,手動試行看看
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 4# Andy2483


#2312302239 門框玻璃 550MM =11PCS
#2312302236 門框玻璃 300MM =4PCS
#2312302240 門框玻璃 280MM =4PCS
#2402190275 門框玻璃 300MM =4PCS
下架 SR7006 (07F門玉)
這�堿O5行


全部按照資料的順序排列
Sheet1 工作頁 第一行 #2312302239 門框玻璃 550MM =11PCS    等於   MAP 工作頁第6列    最一行的上架
Sheet1 工作頁 第二行 #2312302236 門框玻璃 300MM =4PCS       等於   MAP 工作頁第7列    最二行的下架
Sheet1 工作頁 第三行 #2312302240 門框玻璃 280MM =4PCS      等於    MAP 工作頁第8列    最三行的中箱
Sheet1 工作頁 第四行 #2402190275 門框玻璃 300MM =4PCS      等於    MAP 工作頁第9列    最四行的上架
Sheet1 工作頁 第五行 下架 SR7006 (07F門玉)                                  等於    MAP 工作頁第10列  最五行的下架

不需要根據上架 / 下架來讀取

TOP

回復 3# 198188

#2312302239 門框玻璃 550MM =11PCS
#2312302236 門框玻璃 300MM =4PCS
#2312302240 門框玻璃 280MM =4PCS
#2402190275 門框玻璃 300MM =4PCS
這些沒辦法判定 上架或 下架
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 2# Andy2483



原本的程式是分上架 & 下架來分辨。

因爲實際情況調整了,所以改爲 按照改下圖工程内5行來直接分配入上圖的5行内。

而欄位同樣分割兩部分,套入2個欄位, A / B 欄
欄位内的規則有少許改動。
首欄  A:
如果有 "SR", 就抽取 從“SR" 開始計算到下一個 "空格" / "("  
舉例
下架 SR7000 (22F)               => SR7000
上架 SR70 (22F)                   => SR70
下架SR700(2F)                     => SR700
SR12(32F)                             =>SR12
如果沒有"SR", 就抽取第一個字到第一個空格
舉例
W201 (3-10F)                                       =>W201
2312302240 GLASS                           => 2312302240
#2402190275 WING                          =>#2402190275
TENU7325721-1 GLASS                    =>TENU7325721-1

首欄  B:
抽取首欄A之後的字元,如果首尾是”()“就去掉”()“
舉例
W201 (3F-5F單元)                                         =>3F-5F單元
2312302240 GLASS                                      => GLASS
#2402190275 WING                                    =>WING
TENU7325721-1(5-6F水槽)1500*1200    =>  5-6F水槽)1500*1200
下架 SR7000 WINDOW(22F)                                         => WINDOW(22F
上架 SR70 (22F)                                              => 22F
下架SR700 (2F)                                               => 2F
SR12 (32F)                                                       =>32F

TOP

回復 1# 198188

這範例檔與之前話題的範例檔資料需要更多判斷才能釐清其為 上架或下架,後學認為資料要進步性
建議前輩多練習,因應這些資料的變化修改程式

用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 為人處世要小心細心,但不要「小心眼」。
返回列表 上一主題