khuongnguyen124
Thành viên mới
- Tham gia
- 8/5/12
- Bài viết
- 21
- Được thích
- 4
- Giới tính
- Nữ
- Nghề nghiệp
- Accounting
Các cao nhân giúp em lỗi đoạn code này với ạ.
Lỗi báo về là runtime error 13, type mismach.
Em tìm mãi chẳng ra. Đoạn code này em xin từ 1 cao nhân khác, về vừa dùng vừa học. Vừa rồi test thử cái VBA protection xong cái không dùng được nữa, cứ bị báo lỗi thế này không rõ là do đâu ạ
Cám ơn ạ!
Sub FIFO_VBA1() 'Tinh gia xuat kho theo PP FIFO Item1
Dim SL_Xuat_Item1 As Long 'Thiet lap bien xac dinh so luong can xuat
Dim a1 As Integer 'Bien a1 chay trong vong lap xet lan xuat
Dim b1 As Integer 'Bien b1 chay trong vong lap xet so luong xuat dua tren so da nhap
Dim SL_Cac_Lan_Nhap_Item1 As Long 'So luong cac lan nhap xet theo FIFO
Dim TT_Xuat_Item1 As Double 'Gia tri xuat kho
Dim cot_SL_Nhap_Item1 As Variant 'Thiet lap bien cot so luong nhap
Dim cot_DG_Nhap_Item1 As Variant 'Thiet lap bien cot don gia nhap
Range("I3:I1000").ClearContents 'Lam moi cot ket qua gia tri xuat kho tinh bang FIFO
cot_SL_Nhap_Item1 = Range("C3", Range("C65536").End(xlUp)) 'Cot so luong nhap
cot_DG_Nhap_Item1 = Range("D3", Range("D65536").End(xlUp)) 'Cot don gia nhap
For a1 = 3 To Range("A" & Rows.Count).End(xlUp).Row 'Xet vong lap dua tren tong so dong cot A, tu dong 2 den dong cuoi cung co du lieu
TT_Xuat_Item1 = 0 'Gia tri xuat kho ban dau
SL_Xuat_Item1 = Range("H" & a1) 'So luong xuat ban dau, xet tai cot H, bien a1
b1 = 1 'Tai vi tri bat dau, bien b1 se la dong thu nhat
Do While SL_Xuat_Item1 > 0 'Chi xet khi so luong xuat ban dau >0
SL_Cac_Lan_Nhap_Item1 = cot_SL_Nhap_Item1(b1, 1) 'Xet tung lan nhap
cot_SL_Nhap_Item1(b1, 1) = IIf(cot_SL_Nhap_Item1(b1, 1) > SL_Xuat_Item1, cot_SL_Nhap_Item1(b1, 1) - SL_Xuat_Item1, 0) 'Ham iif de viet truc tiep ham If trong VBA, tinh so luong xuat phan bo cho cac lan nhap
SL_Xuat_Item1 = SL_Xuat_Item1 - (SL_Cac_Lan_Nhap_Item1 - cot_SL_Nhap_Item1(b1, 1)) 'So luong tinh xuat kho theo cac lan nhap
TT_Xuat_Item1 = TT_Xuat_Item1 + (SL_Cac_Lan_Nhap_Item1 - cot_SL_Nhap_Item1(b1, 1)) * cot_DG_Nhap_Item1(b1, 1) 'Thanh tien xuat kho theo cac lan nhap
b1 = b1 + 1 'lap lai bien b1 toi cac lan xuat tiep theo cho toi khi du so luong xuat
Loop
Range("I65536").End(xlUp)(2) = TT_Xuat_Item1 'Lay ket qua gia tri xuat kho
Next a1
End Sub
Lỗi báo về là runtime error 13, type mismach.
Em tìm mãi chẳng ra. Đoạn code này em xin từ 1 cao nhân khác, về vừa dùng vừa học. Vừa rồi test thử cái VBA protection xong cái không dùng được nữa, cứ bị báo lỗi thế này không rõ là do đâu ạ
Cám ơn ạ!
Sub FIFO_VBA1() 'Tinh gia xuat kho theo PP FIFO Item1
Dim SL_Xuat_Item1 As Long 'Thiet lap bien xac dinh so luong can xuat
Dim a1 As Integer 'Bien a1 chay trong vong lap xet lan xuat
Dim b1 As Integer 'Bien b1 chay trong vong lap xet so luong xuat dua tren so da nhap
Dim SL_Cac_Lan_Nhap_Item1 As Long 'So luong cac lan nhap xet theo FIFO
Dim TT_Xuat_Item1 As Double 'Gia tri xuat kho
Dim cot_SL_Nhap_Item1 As Variant 'Thiet lap bien cot so luong nhap
Dim cot_DG_Nhap_Item1 As Variant 'Thiet lap bien cot don gia nhap
Range("I3:I1000").ClearContents 'Lam moi cot ket qua gia tri xuat kho tinh bang FIFO
cot_SL_Nhap_Item1 = Range("C3", Range("C65536").End(xlUp)) 'Cot so luong nhap
cot_DG_Nhap_Item1 = Range("D3", Range("D65536").End(xlUp)) 'Cot don gia nhap
For a1 = 3 To Range("A" & Rows.Count).End(xlUp).Row 'Xet vong lap dua tren tong so dong cot A, tu dong 2 den dong cuoi cung co du lieu
TT_Xuat_Item1 = 0 'Gia tri xuat kho ban dau
SL_Xuat_Item1 = Range("H" & a1) 'So luong xuat ban dau, xet tai cot H, bien a1
b1 = 1 'Tai vi tri bat dau, bien b1 se la dong thu nhat
Do While SL_Xuat_Item1 > 0 'Chi xet khi so luong xuat ban dau >0
SL_Cac_Lan_Nhap_Item1 = cot_SL_Nhap_Item1(b1, 1) 'Xet tung lan nhap
cot_SL_Nhap_Item1(b1, 1) = IIf(cot_SL_Nhap_Item1(b1, 1) > SL_Xuat_Item1, cot_SL_Nhap_Item1(b1, 1) - SL_Xuat_Item1, 0) 'Ham iif de viet truc tiep ham If trong VBA, tinh so luong xuat phan bo cho cac lan nhap
SL_Xuat_Item1 = SL_Xuat_Item1 - (SL_Cac_Lan_Nhap_Item1 - cot_SL_Nhap_Item1(b1, 1)) 'So luong tinh xuat kho theo cac lan nhap
TT_Xuat_Item1 = TT_Xuat_Item1 + (SL_Cac_Lan_Nhap_Item1 - cot_SL_Nhap_Item1(b1, 1)) * cot_DG_Nhap_Item1(b1, 1) 'Thanh tien xuat kho theo cac lan nhap
b1 = b1 + 1 'lap lai bien b1 toi cac lan xuat tiep theo cho toi khi du so luong xuat
Loop
Range("I65536").End(xlUp)(2) = TT_Xuat_Item1 'Lay ket qua gia tri xuat kho
Next a1
End Sub