返回列表 上一主題 發帖

[發問] 對應日期貼盤點資料

本帖最後由 n7822123 於 2021-7-20 10:32 編輯

回復 13# 軒云熊
回復 14# PJChen

有時候不是我不想幫,是我連需求都沒看懂......

感覺樓主的問題都是實務上的問題,對不熟你們公司表格填寫、運作方式的人來說,有點複雜

誠心建議,樓主可以試著把複雜的問題,簡單化之後再發問,一定會比較多人幫忙

因為看你之前的發問,推測出你有一些些的VBA基礎的 (我記得你有問過Ubound之類的)

程式可以像拼圖一樣,可拆分成很多小部分的

假如你的需求需要程式寫N個步驟,但你只有某步驟卡住不會,其他功能你都可以自己寫出來

只要把你不會的部分,單獨拿出來發問即可,之後你就可以組合出你要的完整功能

小到新增工作表、複製1列資料,都可以當作步驟

我們在解需求的時候,也是會先想整體操作步驟(程式主架構)

再一個個完成一開始想的步驟,你需要做的只是,把你原本"手動"操作的部分

分步驟一個個列出來,再試著寫這些步驟,寫不出來的部分,就發問

以下舉例說明~


假如你的需求需要程式做10個步驟,但你只有步驟6卡住不會

單獨把步驟6拿出來發問,問到答案之後,自己組合出你要的功能

當然測試檔要先自己完成步驟1~5(手動or寫VBA),再附到論壇上發問


Sub 完整功能主程序()
  Call 前面會的副程序   '步驟1~5
  Call 步驟6
  Call 後面會的副程序   '步驟7~10
End Sub

Sub 步驟6()
'須發問,不會做的部分
End Sub

Sub 前面會的副程序()
步驟1
步驟2
步驟3
步驟4
步驟5
End Sub

Sub 後面會的副程序()
步驟7
步驟8
步驟9
步驟10
End Sub
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2021-7-20 15:21 編輯

回復 18# 軒云熊

結合你的說明,以及前面討論串,終於看懂了
其實只是A檔A表A格式 搬移資料到 B檔B表B格式
難在不固定表格,要找需要的資料範圍


因為有2種格式分別互相對應  
找到相對應的日期就把數值貼上(多客戶盤點表)

來源表盤差下面的 XX箱,可以用合併儲存格"列數"(Columns.Count),判斷是2 Row 還是 3 Row

我現在問題出在要比對的儲存格位置沒有固定
列如:萬達庫存表
品名欄位是合併狀態

你說的是"E欄"的品名吧
合併儲存格,只有第一格有資料,其餘都是空白
利用此邏輯判斷好,是可以處理的
但我發現 E欄 BG欄 都有品名,還互相衝突ˊˋ


123.png
2021-7-20 15:14


右邊 U∼AF位置不固定 不一定是U∼AF也有可能是從V開始或著其它欄位開始
目前發現 有郇L點虷r樣的位置 可以找出範圍 但不知道如何做

看了各表格,確實只能用"盤點"來確定範圍
本來想用比較少用的字樣"盤差"來找範圍
但發現有的日期在盤差後面,有的在前面......(這格式不科學阿),所以還是盤點吧
針對這種不固定範圍的表格,須要先找一個 "不重複、唯一" 的關鍵字來"定位"
看了下來源表格,盤點在同一張表格也是唯一的,所以可以用
利用Range物件的"Find"方法可以找關鍵字的欄位


請問前輩 要怎麼把相對應的 品名 與 日期 還有日期下方的數值 正確的放到陣列 方便做比對
如果直接全部塞到陣列不好做比對 因為工作表的格式內容太多而且會變更複雜

上面那一步確認範圍之後,就可以塞進陣列了
結合合併儲存格的邏輯,只有第一格有資料
所以起始欄可找"盤點"字樣的欄位,終點欄位可以利用該合併儲存格的"欄數"(Columns.Count)來計算
起點列看起來蠻固定的,都從第7列開始,或者找"盤點"列+2
終點列看起來可以用A欄(保存天數)的末端資料來判斷


好啦,你的問題我都解答完畢了
我還沒要開始寫
你先挑戰看看吧~
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2021-7-20 20:14 編輯

回復 20# 軒云熊

感謝 n7822123前輩提點 現在已經可以放到陣列了 
合併儲存格的"欄數"(Columns.Count)不知如何計算 >苤捸@

參考看看

Set Rg = .Cells.Find("盤點", , , xlWhole)  '找值="盤點"的表格
If Not Rg Is Nothing Then
    C0 = Rg.Column                                          '來源表起始欄
    C_Cnt = Rg.MergeArea.Columns.Count   '資料欄數
End If


他的表格其實本身有Bug,如下圖250g前面 有的有空白,有的沒有

而且品名有很多只差別一個數字(Ex:鮮乳1~N)

所以品名也不能模糊比對,若樓主回饋有問題,先檢查資料吧~

這要我來寫,可能要寫一堆防呆程式,不然哪裡有問題都抓不到


ERR.png
2021-7-20 20:14
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2021-7-20 23:14 編輯

回復 20# 軒云熊
回復 22# PJChen

我是寫好了....迴圈最多就2層,但應該也沒那麼好懂

註解已經寫好寫滿了,一半都是註解~

主要是格式不太有規律

不然小小的資料搬移程式不用寫到那麼多行...

感覺寫得有點冗長.....應該可以再簡化一些

不過先請樓主確認功能面吧~


0720_阿龍.rar (929.73 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 24# 軒云熊

沒錯,我在測試時也發現日期有2021 與 2022 兩種(有的保值期1年,有的才45天)

所以我把很多資料都改過了,為了測試

如果有看不懂的地方,再發問吧~用了一些技巧,

如果不用的話迴圈會變多,不容易Debug
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2021-7-21 22:54 編輯

回復 28# PJChen


我剛剛下載了論壇的檔案,測過沒問題呀

只開巨集檔,按下面按鈕就跑完了

你可以把多客戶盤點表,巨集要填的內容都刪除

執行後看看,因為給的附件應該是執行過的了

如果你都沒改程式的話,預設都放在同一個資料夾下

123.png
2021-7-21 22:49

321.png
2021-7-21 22:52
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2021-7-23 12:19 編輯

回復 32# PJChen

執行後還是連一筆資料都沒貼上

你先別用你的測試檔,你先用我上次上傳裡面的測試檔看看

如果還是一樣,那可能是環境問題,如果我的測試檔沒問題

那可能是你的儲存格資料沒有相對應、或者你又有其他檔案格式

我上次就發現你的"品名"  很有問題

還有說明盡量用"圖片",不然別人很難懂你在表達什麼
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

        靜思自在 : 地上種了菜,就不易長草;心中有善,就不易生惡。
返回列表 上一主題