VBA FIFO không chạy, xin giúp đỡ.

  • Thread starter Thread starter ngo15
  • Ngày gửi Ngày gửi
Liên hệ QC

ngo15

Thành viên chính thức
Tham gia
24/6/06
Bài viết
75
Được thích
44
Tôi có tìm được công thức tính FIFO trên trang www.mrexcel.com. Nhưng khi chạy nó cứ báo lỗi debug dòng 13 từ trên xuống "sumout =(a,3)", các bạn chỉ giúp lỗi ở đâu.

Số liệu bắt đầu từ dòng 7, cột A: TT, cột B: Date, cột C: Hàng hoá, cột D: IN or OUT, cột E: ĐG mua, cột F: SL mua, cột G: SL bán, cột H: Balance, cột I: ĐG FIFO (Sheet phải là FIFO)

Sub FIFO()
Dim a As Variant, Cost As Double, sumIn As Double, sumOut As Double, _
i As Long, ii As Long, n As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
With Sheets("FIFO")
.Range("i7", .Cells(Rows.Count, "i").End(xlUp)).ClearContents
a = .Range("e7", .Cells(Rows.Count, "g").End(xlUp)).Resize(, 5).Value
n = 1
For i = LBound(a, 1) To UBound(a, 1)
If Not IsEmpty(a(i, 3)) Then
sumOut = a(i, 3)
For ii = n To i - 1
If Not IsEmpty(a(ii, 2)) Then
sumIn = sumIn + a(ii, 2)
If sumIn > sumOut Then
Exit For
Else
Cost = Cost + a(ii, 1) * a(ii, 2)
a(ii, 2) = Empty
End If
End If
Next
If sumIn - sumOut > 0 Then
Cost = (Cost + (a(ii, 1) * (a(ii, 2) - (sumIn - sumOut)))) / sumOut
a(ii, 2) = sumIn - sumOut
Else
Cost = Cost / sumOut
End If
a(i, 5) = Cost
sumIn = 0: sumOut = 0: Cost = 0: n = ii
End If
Next
.Range("i7").Resize(UBound(a, 1)) = Application.Index(a, 0, 5)
Erase a
End With
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Nếu có thể bạn giải thích hộ từng bước nó làm thì tốt quá. Tôi mới tập toẹ vào VBA. Xin cám ơn
 
Cám ơn bạn đã giúp. Làm ơn dịch tiếp hộ, và tại sao nó không chạy?
 
/(hông fải là dịch tiếp mà fải xem lỗi ở đâu để loại trư!

Sub FIFO()
On Error Goto Loi_FIFO ' Ba chữ đầu cứ viết thường hết, nếu nó biên dịch thì được;
. . . .
. . .
Err_FIFO: Exit Sub
Loi_FIFO: Dim StrC as string
select case err
case 13
StrC = A(i ,3)
case else
StrC= Str(Err)
End select
msgbox "Ma Loi:13 " & Error$ ,, Strc
Resume Err_FIFO

End Sub
Hãy thông báo cho mọi người biết bạn thấy gì trong hộp thoại!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Nó thông báo:
"Ma Loi: 13
Type mismatc"
Và đồng hồ cát xuất hiện không chịu mất đi. Sau khi ấn OK thì đồng hồ cát biến mất còn EXCEL vẫn y nguyên không thục hiện lệnh nào
 
Vẫn là : "Ma Loi: 13 Type mismatch"
Còn xoá bớt bài hết cần thiết như thế nào?
 
Compile error: Sub or Function not definet. Trong VBE nó bôi đen Iznumeric.
 
Nó ra cái thứ nhất không có gì, OK ra cái thứ hai "Ma Loi: 13 Type mismatch"
 
Cám ơn bạn HYen, tôi xoá hết cột G cho chắc ăn. Macro đã chạy. Nhưng bây giờ đánh số vào và chạy macro thì nó ra 2 thông báo:
- Thông báo thứ nhất: Num
- Thông báo thứ hai: số mà mình vừa đánh vào
Sau khi ấn OK tại thông báo thứ hai thì macro mới chạy.
 
&ui chưa?

(húng ta đã thêm 4 dòng lệnh đó mà; Giờ chỉ việc xóa chúng đi = 2 cách:
1 (Muốn có KNiệm: Nhấp dấu nháy đơn vô đầu dòng lệnh; Khi trỏ chuột qua dòng # thì dóng có nháy đơn sẽ chuyển = xanh lam)
2 Xóa tất 4 dòng đi!

(ác dòng bắt lỗi thì bạn nên để lại sau này sẽ có lợi!

/(/hắc lại: Xóa các dòng lệnh 101-104 thêm sau này thôi nha!
 
Cám ơn bạn HYen rất nhiều, tất cả đã chạy tốt.
Vấn đề là các số liệu của file này (chỉ có 1 mặt hàng) lại được trích lọc từ file chung có nhiều mặt hàng bằng các công thức nên nó có nhiều cell ="".
 
Web KT

Bài viết mới nhất

Back
Top Bottom