標題:
求教:核對,合并,加總,更新,加插資料
[打印本頁]
作者:
198188
時間:
2024-7-15 15:53
標題:
求教:核對,合并,加總,更新,加插資料
請各大大幫忙
Window & Door 是資料庫
Window & Door表是記錄 各訂單號WO-J057-0**訂購每款圖號的數量
PJ 是匯總表
是將Window & Door 合并成一個資料庫。
如果Window & Door 資料庫�媢牉飽A長,寬一致的相同WO-J057-*** 數量加總 (如紅色字 FS101, FS512, FS102, DF100)
如果WO-J057-0** 全部都是“0” 則該圖號/長/寬/面積/類型/WO-J057-*** 的數量數據不抄入PJ匯總表内。 (如 FS511, DF115, DF116, DF117, DF118) 因爲沒有訂貨,所以不用顯示到PJ匯總表内。)
WO-J057-0**訂單號則以欄位排列。
如果Window 類型一欄是“口字形”, PJ 的類型一欄變成“ Mouth" ;
如果Window 類型一欄不是“口字形”, PJ 的類型一欄變成“ Other" ;
如果Door 表的資料, PJ 的類型一欄變成“ Door"
****因爲有機會修改 Window & Door 資料或者增加WO-J057-0**訂單,所以PJ表如果不是空白,則保留原本的圖號/長/寬/面積/類型的資料,只是更新每個WO-J057-0** 的數量,或者加插PJ表内沒有的WO-J057-0**一欄到欄E後面
作者:
198188
時間:
2024-7-15 17:58
回復
1#
198188
沒留意上載了3個附件,附件Sample才是正確,其他兩個附件是錯了。
作者:
198188
時間:
2024-7-16 11:02
Option Explicit
Sub Test()
Dim Brr, Z, i&, C, T$, T1$, T2$, T3$, T4$, T5$, T6$, xZ As Range
Dim ColNum As Long
Dim m, j, k As Integer
Dim L As String
Set Z = CreateObject("Scripting.Dictionary")
Brr = Range([Window!AE02], [WINDOW!A65536].End(3))
For i = 1 To UBound(Brr)
T1 = Trim(Brr(i, 2)): T2 = Val(Brr(i, 4)): T3 = Val(Brr(i, 5)):: T = T1 & "/" & T2 & "/" & T3
If T1 = "" Then GoTo i01
Z(T) = Val(Brr(i, 6))
i01: Next
Brr = [PJ!a1].CurrentRegion
For i = 2 To UBound(Brr)
T1 = Trim(Brr(i, 1)): T2 = Val(Brr(i, 2)): T3 = Val(Brr(i, 3)): T = T1 & "/" & T2 & "/" & T3
If T1 = "" Or Z(T) = "" Then Brr(i - 1, 1) = "": GoTo i02
Brr(i - 1, 1) = Z(T)
i02: Next
[PJ!D2].Resize(UBound(Brr), 1) = Brr
End Sub
複製代碼
回復
2#
198188
Z(T) = Val(Brr(i, 6)) 是記錄Window 欄 F是數據,
如果想記錄多個欄位的數據,例如欄G, I, J, K - AD ,應該如果寫?
另外我試過記錄欄G數據,但是中文好像讀不出來。
如果Window 内 欄B, D, E 相同的數據, 欄 I - AD 的數量按欄位分別加總,如何表達?
作者:
xyz66217
時間:
2024-7-17 04:54
回復
3#
198188
看了一下你的檔案,感覺在 window & door 兩個sheet 都會同時向下向右增加行數,
小弟資歷淺,個人感覺這樣應該寫不太出來(要繞很多步,找到資料後,要先比對是不是小計總計列等......),其中影嚮比較大的,是其中的小計 & 總計欄,建議把這拿掉,
另建sheet,以excel 公式統計(公式如圖,使用 sumif),簡少 window & door 中的變數,才比較容易寫。
如果這樣你可以接受的話,程式就只要寫成 1. 尋 window 最右邊 & 最下面有資料的行數, 2.找其中有資料的cell 3.比對 pj 是否有資料 (是否需覆寫或增加) 4.重複 1~3 步驟但改成 door 5. PJ 資料排序
這樣相對而言,應該容易許多
[attach]37820[/attach][attach]37821[/attach][attach]37822[/attach]
作者:
198188
時間:
2024-7-17 09:29
回復
4#
xyz66217
是的,會不斷向下和向右延申。
延申問題不大,就是不知道怎樣把相同的加總 和多欄位記錄。
類似這樣加總
Z(T) = Val(Brr(i, 6)) + Val(Brr(i, 6)) + Val(Brr(i, 6))
還有就是怎樣多欄位記錄
ARRAY (Z(T), Z(T), Z(T), Z(T), Z(T))
作者:
Andy2483
時間:
2024-7-19 10:30
回復
3#
198188
建議:以字典記錄 Window表資料的 關鍵字組為key,列號為item
作者:
198188
時間:
2024-7-19 14:38
回復
6#
Andy2483
現在在學習中,但是概念還是很模糊,請問前輩下面這兩句是怎樣解讀,我試過用逐步偵錯來了解使用方式,但是還是不懂。
[Backup!a1].Item(2, c).Resize(UBound(Brr) - 2) = Brr
[PJ!D2].Resize(UBound(Brr), 1) = Brr
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)